"{\"numFailedTestSuites\":0,\"numFailedTests\":0,\"numPassedTestSuites\":9,\"numPassedTests\":72,\"numPendingTestSuites\":0,\"numPendingTests\":0,\"numRuntimeErrorTestSuites\":0,\"numTodoTests\":0,\"numTotalTestSuites\":9,\"numTotalTests\":72,\"openHandles\":[],\"snapshot\":{\"added\":0,\"didUpdate\":false,\"failure\":false,\"filesAdded\":0,\"filesRemoved\":0,\"filesRemovedList\":[],\"filesUnmatched\":0,\"filesUpdated\":0,\"matched\":0,\"total\":0,\"unchecked\":0,\"uncheckedKeysByFile\":[],\"unmatched\":0,\"updated\":0},\"startTime\":1614411947720,\"success\":false,\"testResults\":[{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":3,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1614411951231,\"runtime\":3429,\"slow\":false,\"start\":1614411947802},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\schedule-userId.test.js\",\"testResults\":[{\"ancestorTitles\":[\"GET /schedule/:visitingPlaceId\"],\"duration\":13,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /schedule/:visitingPlaceId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /schedule/:visitingPlaceId\"],\"duration\":26,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /schedule/:visitingPlaceId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"GET /schedule/:visitingPlaceId\"],\"duration\":12,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /schedule/:visitingPlaceId invalid place id - 404\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"invalid place id - 404\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/01/app_010e21b7416079df77678cc6cb70a530.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nvar upload = require('../controllers/upload');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\", authenticate.verifyUser, upload.UploadUserImage);\\nuserRouter.get('/logout', authenticate.verifyUser, userController.logout);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsInVwbG9hZCIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwiVXBsb2FkVXNlckltYWdlIiwiZ2V0IiwibG9nb3V0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLElBQUlJLE1BQU0sR0FBR0osT0FBTyxDQUFDLHVCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUssRUFBQUE7QUFBRixJQUFrQkwsT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlNLFlBQVksR0FBR04sT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlPLGVBQWUsR0FBR1AsT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlRLGNBQWMsR0FBR1IsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1TLElBQUksR0FBR1QsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1MsR0FBWCxDQUFlUCxVQUFVLENBQUNRLElBQVgsRUFBZjtBQUVBVixVQUFVLENBQUNXLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZixVQUFVLENBQUNnQixJQUFYLENBQWdCLGVBQWhCLEVBQWlDUixJQUFJLENBQUNJLGVBQXRDLEVBQXVETCxjQUFjLENBQUNVLFdBQXRFO0FBRUFqQixVQUFVLENBQUNnQixJQUFYLENBQWdCLFFBQWhCLEVBQTBCUixJQUFJLENBQUNJLGVBQS9CLEVBQWdETCxjQUFjLENBQUNXLEtBQS9EO0FBRUFsQixVQUFVLENBQUNnQixJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBcEIsVUFBVSxDQUFDZ0IsSUFBWCxDQUFnQiwyQkFBaEIsRUFBNENYLFlBQVksQ0FBQ2MsVUFBekQsRUFBcUVoQixNQUFNLENBQUNrQixlQUE1RTtBQUVBckIsVUFBVSxDQUFDc0IsR0FBWCxDQUFlLFNBQWYsRUFBeUJqQixZQUFZLENBQUNjLFVBQXRDLEVBQWtEWixjQUFjLENBQUNnQixNQUFqRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJ6QixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxudmFyIHVwbG9hZCA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3VwbG9hZCcpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG52YXIgdXNlckNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy91c2VyQ29udHJvbGxlcicpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcblxyXG51c2VyUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG51c2VyUm91dGVyLm9wdGlvbnMoJyonLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcblxyXG51c2VyUm91dGVyLnBvc3QoJy9zaWdudXAvYWRtaW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIuc2lnbnVwQWRtaW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvbG9naW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIubG9naW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvY2hhbmdlcGFzc293b3JkLzppZCcsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVzZXJDb250cm9sbGVyLmNoYW5nZVBhc3Nvd29yZCk7XHJcblxyXG51c2VyUm91dGVyLnBvc3QoXCIvdXBkYXRlcHJvZmlsZXBpY3R1cmUvOmlkXCIsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVwbG9hZC5VcGxvYWRVc2VySW1hZ2UpO1xyXG5cclxudXNlclJvdXRlci5nZXQoJy9sb2dvdXQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5sb2dvdXQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nvar upload = require('../controllers/upload');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\",authenticate.verifyUser, upload.UploadUserImage);\\r\\n\\r\\nuserRouter.get('/logout',authenticate.verifyUser, userController.logout);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/a6/userRouter_a6221ff3be20743fe1c0fd1dc9fd8435.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4566,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4563,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":606,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const sharp = require('sharp');\\n\\nconst uid = require('uid');\\n\\nconst fs = require('fs');\\n\\nconst Users = require('../models/users');\\n\\nconst Places = require('../models/visitingPlaces');\\n\\nconst uploadFile = async (req, res) => {\\n try {\\n await upload(req, res);\\n\\n if (req.file == undefined) {\\n return res.send(`You must select a file.`);\\n }\\n\\n return res.send(`File has been uploaded.`);\\n } catch (error) {\\n return res.send(`Error when trying upload image: ${error}`);\\n }\\n};\\n\\nconst UploadUserImage = async (req, res, next) => {\\n try {\\n const user_id = req.params._id;\\n const user = await Users.findById(user_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/userImages/${imageUrl}`;\\n let previousImagePath = `images/userImages/${user.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'profile.png';\\n }\\n\\n user.image = imageUrl;\\n await user.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nconst uploadPlaceImage = async (req, res, next) => {\\n try {\\n const place_id = req.params._id;\\n const user = await Places.findById(place_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/placeImages/${imageUrl}`;\\n let previousImagePath = `images/placeImages/${place.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'image.png';\\n }\\n\\n place.image = imageUrl;\\n await place.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nexports.UploadUserImage = UploadUserImage;\\nexports.uploadFile = uploadFile;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVwbG9hZC5qcyJdLCJuYW1lcyI6WyJzaGFycCIsInJlcXVpcmUiLCJ1aWQiLCJmcyIsIlVzZXJzIiwiUGxhY2VzIiwidXBsb2FkRmlsZSIsInJlcSIsInJlcyIsInVwbG9hZCIsImZpbGUiLCJ1bmRlZmluZWQiLCJzZW5kIiwiZXJyb3IiLCJVcGxvYWRVc2VySW1hZ2UiLCJuZXh0IiwidXNlcl9pZCIsInBhcmFtcyIsIl9pZCIsInVzZXIiLCJmaW5kQnlJZCIsImltYWdlVXJsIiwib3JpZ2luYWxuYW1lIiwiZmlsZW5hbWUiLCJwcmV2aW91c0ltYWdlUGF0aCIsImltYWdlIiwiaW1hZ2VFeGlzdCIsImV4aXN0c1N5bmMiLCJkZWxldGVJbWFnZSIsInBhdGgiLCJyb3RhdGUiLCJyZXNpemUiLCJ0b0ZpbGUiLCJ1bmxpbmsiLCJlcnIiLCJzYXZlIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwibWVzc2FnZSIsInVwbG9hZFBsYWNlSW1hZ2UiLCJwbGFjZV9pZCIsInBsYWNlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsT0FBRCxDQUFyQjs7QUFDQSxNQUFNQyxHQUFHLEdBQUdELE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLElBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsS0FBSyxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBckI7O0FBQ0EsTUFBTUksTUFBTSxHQUFHSixPQUFPLENBQUMsMEJBQUQsQ0FBdEI7O0FBRUEsTUFBTUssVUFBVSxHQUFHLE9BQU9DLEdBQVAsRUFBWUMsR0FBWixLQUFvQjtBQUNuQyxNQUFJO0FBQ0EsVUFBTUMsTUFBTSxDQUFDRixHQUFELEVBQU1DLEdBQU4sQ0FBWjs7QUFFQSxRQUFJRCxHQUFHLENBQUNHLElBQUosSUFBWUMsU0FBaEIsRUFBMkI7QUFDdkIsYUFBT0gsR0FBRyxDQUFDSSxJQUFK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QUFkLEVBQThCLGtCQUE5QjtBQUNBN0IsSUFBQUEsR0FBRyxDQUFDOEIsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCQyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNIO0FBQ0osQ0F6Q0Q7O0FBMkNBSSxPQUFPLENBQUM5QixlQUFSLEdBQTBCQSxlQUExQjtBQUNBOEIsT0FBTyxDQUFDdEMsVUFBUixHQUFxQkEsVUFBckIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzaGFycCA9IHJlcXVpcmUoJ3NoYXJwJyk7XHJcbmNvbnN0IHVpZCA9IHJlcXVpcmUoJ3VpZCcpO1xyXG5jb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XHJcbmNvbnN0IFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFBsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpXHJcblxyXG5jb25zdCB1cGxvYWRGaWxlID0gYXN5bmMgKHJlcSwgcmVzKSA9PiB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHVwbG9hZChyZXEsIHJlcyk7XHJcblxyXG4gICAgICAgIGlmIChyZXEuZmlsZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBZb3UgbXVzdCBzZWxlY3QgYSBmaWxlLmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBGaWxlIGhhcyBiZWVuIHVwbG9hZGVkLmApO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICByZXR1cm4gcmVzLnNlbmQoYEVycm9yIHdoZW4gdHJ5aW5nIHVwbG9hZCBpbWFnZTogJHtlcnJvcn1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IFVwbG9hZFVzZXJJbWFnZSA9IGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBjb25zdCB1c2VyX2lkID0gcmVxLnBhcmFtcy5faWQ7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IGF3YWl0IFVzZXJzLmZpbmRCeUlkKHVzZXJfaWQpO1xyXG5cclxuICAgICAgICBsZXQgaW1hZ2VVcmw7XHJcbiAgICAgICAgaWYgKHJlcS5maWxlKSB7XHJcbiAgICAgICAgICAgIGltYWdlVXJsID0gYCR7dWlkKCl9X18ke3JlcS5maWxlLm9yaWdpbmFsbmFtZX1gO1xyXG4gICAgICAgICAgICBsZXQgZmlsZW5hbWUgPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHtpbWFnZVVybH1gO1xyXG4gICAgICAgICAgICBsZXQgcHJldmlvdXNJbWFnZVBhdGggPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHt1c2VyLmltYWdlfWA7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpbWFnZUV4aXN0ID0gZnMuZXhpc3RzU3luYyhwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIGlmIChpbWFnZUV4aXN0KSB7XHJcbiAgICAgICAgICAgICAgICBkZWxldGVJbWFnZShwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYXdhaXQgc2hhcnAocmVxLmZpbGUucGF0aClcclxuICAgICAgICAgICAgICAgIC5yb3RhdGUoKVxyXG4gICAgICAgICAgICAgICAgLnJlc2l6ZSg1MDAsIDUwMClcclxuICAgICAgICAgICAgICAgIC50b0ZpbGUoZmlsZW5hbWUpO1xyXG5cclxuICAgICAgICAgICAgZnMudW5saW5rKHJlcS5maWxlLnBhdGgsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9ICdwcm9maWxlLnBuZyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1c2VyLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgdXNlci5zYXZlKCk7XHJcblxyXG5cclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1N1Y2Nlc3NmdWxseSB1cGRhdGVkIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcblxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgdXBkYXRpbmcgcHJvZmlsZSBwaWN0dXJlJyB9KTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IHVwbG9hZFBsYWNlSW1hZ2UgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfaWQgPSByZXEucGFyYW1zLl9pZDtcclxuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgUGxhY2VzLmZpbmRCeUlkKHBsYWNlX2lkKTtcclxuXHJcbiAgICAgICAgbGV0IGltYWdlVXJsO1xyXG4gICAgICAgIGlmIChyZXEuZmlsZSkge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9IGAke3VpZCgpfV9fJHtyZXEuZmlsZS5vcmlnaW5hbG5hbWV9YDtcclxuICAgICAgICAgICAgbGV0IGZpbGVuYW1lID0gYGltYWdlcy9wbGFjZUltYWdlcy8ke2ltYWdlVXJsfWA7XHJcbiAgICAgICAgICAgIGxldCBwcmV2aW91c0ltYWdlUGF0aCA9IGBpbWFnZXMvcGxhY2VJbWFnZXMvJHtwbGFjZS5pbWFnZX1gO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaW1hZ2VFeGlzdCA9IGZzLmV4aXN0c1N5bmMocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICBpZiAoaW1hZ2VFeGlzdCkge1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlSW1hZ2UocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGF3YWl0IHNoYXJwKHJlcS5maWxlLnBhdGgpXHJcbiAgICAgICAgICAgICAgICAucm90YXRlKClcclxuICAgICAgICAgICAgICAgIC5yZXNpemUoNTAwLCA1MDApXHJcbiAgICAgICAgICAgICAgICAudG9GaWxlKGZpbGVuYW1lKTtcclxuXHJcbiAgICAgICAgICAgIGZzLnVubGluayhyZXEuZmlsZS5wYXRoLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaW1hZ2VVcmwgPSAnaW1hZ2UucG5nJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBsYWNlLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgcGxhY2Uuc2F2ZSgpO1xyXG5cclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6ICdTdWNjZXNzZnVsbHkgdXBkYXRlZCBwcm9maWxlIHBpY3R1cmUnIH0pO1xyXG5cclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnRzLlVwbG9hZFVzZXJJbWFnZSA9IFVwbG9hZFVzZXJJbWFnZTtcclxuZXhwb3J0cy51cGxvYWRGaWxlID0gdXBsb2FkRmlsZTsiXX0=\",\"originalCode\":\"const sharp = require('sharp');\\r\\nconst uid = require('uid');\\r\\nconst fs = require('fs');\\r\\nconst Users = require('../models/users');\\r\\nconst Places = require('../models/visitingPlaces')\\r\\n\\r\\nconst uploadFile = async (req, res) => {\\r\\n try {\\r\\n await upload(req, res);\\r\\n\\r\\n if (req.file == undefined) {\\r\\n return res.send(`You must select a file.`);\\r\\n }\\r\\n\\r\\n return res.send(`File has been uploaded.`);\\r\\n } catch (error) {\\r\\n return res.send(`Error when trying upload image: ${error}`);\\r\\n }\\r\\n};\\r\\n\\r\\nconst UploadUserImage = async (req, res, next) => {\\r\\n try {\\r\\n const user_id = req.params._id;\\r\\n const user = await Users.findById(user_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/userImages/${imageUrl}`;\\r\\n let previousImagePath = `images/userImages/${user.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'profile.png';\\r\\n }\\r\\n\\r\\n user.image = imageUrl;\\r\\n await user.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nconst uploadPlaceImage = async (req, res, next) => {\\r\\n try {\\r\\n const place_id = req.params._id;\\r\\n const user = await Places.findById(place_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/placeImages/${imageUrl}`;\\r\\n let previousImagePath = `images/placeImages/${place.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'image.png';\\r\\n }\\r\\n\\r\\n place.image = imageUrl;\\r\\n await place.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nexports.UploadUserImage = UploadUserImage;\\r\\nexports.uploadFile = uploadFile;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/70/upload_70c590d2bd713c9562e3916387ba4116.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\upload.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":12791,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":12788,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"uploadFile\",\"ranges\":[{\"startOffset\":293,\"endOffset\":580,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"UploadUserImage\",\"ranges\":[{\"startOffset\":607,\"endOffset\":1704,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"uploadPlaceImage\",\"ranges\":[{\"startOffset\":1732,\"endOffset\":2835,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fa/users_fa250a82bd410ffb1909f920e93eed19.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2324\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c4/visitingPlaces_c4ccc91c117df8c4aeada72a82534688.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2335\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Moderater Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFBVCxDQUF1Qk4sSUFBSSxDQUFDTSxhQUFMLEVBQXZCO0FBQ0FWLFFBQVEsQ0FBQ1csZUFBVCxDQUF5QlAsSUFBSSxDQUFDTyxlQUFMLEVBQXpCOztBQUVBQyxPQUFPLENBQUNDLFFBQVIsR0FBb0JDLElBQUQsSUFBVTtBQUN6QixTQUFPUCxHQUFHLENBQUNRLElBQUosQ0FBU0QsSUFBVCxFQUFlRSxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsU0FBM0IsRUFDSDtBQUFFQyxJQUFBQSxTQUFTLEVBQUU7QUFBYixHQURHLENBQVA7QUFFSCxDQUhEOztBQUtBLElBQUlDLElBQUksR0FBRyxFQUFYO0FBQ0FBLElBQUksQ0FBQ0MsY0FBTCxHQUFzQmYsVUFBVSxDQUFDZ0IsMkJBQVgsRUFBdEI7QUFDQUYsSUFBSSxDQUFDRyxXQUFMLEdBQW1CUCxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsU0FBL0I7QUFFQU4sT0FBTyxDQUFDWSxXQUFSLEdBQXNCeEIsUUFBUSxDQUFDUSxHQUFULENBQWEsSUFBSUgsV0FBSixDQUFnQmUsSUFBaEIsRUFDL0IsQ0FBQ0ssV0FBRCxFQUFjQyxJQUFkLEtBQXVCO0FBQ25CdEIsRUFBQUEsSUFBSSxDQUFDdUIsT0FBTCxDQUFhO0FBQUVDLElBQUFBLEdBQUcsRUFBRUgsV0FBVyxDQUFDRztBQUFuQixHQUFiLEVBQXVDLENBQUNDLEdBQUQsRUFBTWYsSUFBTixLQUFlO0FBQ2xELFFBQUllLEdBQUosRUFBUztBQUNMLGFBQU9ILElBQUksQ0FBQ0csR0FBRCxFQUFNLEtBQU4sQ0FBWDtBQUNILEtBRkQsTUFHSyxJQUFJZixJQUFKLEVBQVU7QUFDWCxhQUFPWSxJQUFJLENBQUMsSUFBRCxFQUFPWixJQUFQLENBQVg7QUFDSCxLQUZJLE1BR0E7QUFDRCxhQUFPWSxJQUFJLENBQUMsSUFBRCxFQUFPLEtBQVAsQ0FBWDtBQUNIO0FBQ0osR0FWRDtBQVdILENBYjhCLENBQWIsQ0FBdEI7QUFlQWQsT0FBTyxDQUFDa0IsVUFBUixHQUFxQjlCLFFBQVEsQ0FBQ1MsWUFBVCxDQUFzQixLQUF0QixFQUE2QjtBQUFFc0IsRUFBQUEsT0FBTyxFQUFFO0FBQVgsQ0FBN0IsQ0FBckI7O0FBRUFuQixPQUFPLENBQUNvQixXQUFSLEdBQXNCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3RDLE1BQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsT0FBckIsRUFBOEI7QUFDMUIsV0FBT0QsSUFBSSxFQUFYO0FBQ0gsR0FGRCxNQUdLLElBQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsT0FBckIsRUFBOEI7QUFDL0JQLElBQUFBLEdBQUcsR0FBRyxJQUFJUSxLQUFKLENBQVUsbURBQVYsQ0FBTjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLE1BQUosR0FBYSxHQUFiO0FBQ0EsV0FBT0gsSUFBSSxDQUFDTixHQUFELENBQVg7QUFDSCxHQUpJLE1BS0E7QUFDREEsSUFBQUEsR0FBRyxHQUFHLElBQUlRLEtBQUosQ0FBVSw0QkFBVixDQUFOO0FBQ0FSLElBQUFBLEdBQUcsQ0FBQ1MsTUFBSixHQUFhLEdBQWI7QUFDQSxXQUFPSCxJQUFJLENBQUNOLEdBQUQsQ0FBWDtBQUNIO0FBQ0osQ0FkRDs7QUFnQkFqQixPQUFPLENBQUMyQixlQUFSLEdBQTBCLENBQUNOLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQzFDLE1BQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsTUFBckIsRUFBNkI7QUFDekIsV0FBT0QsSUFBSSxFQUFYO0FBQ0gsR0FGRCxNQUdLLElBQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsTUFBckIsRUFBNkI7QUFDOUJQLElBQUFBLEdBQUcsR0FBRyxJQUFJUSxLQUFKLENBQVUsbURBQVYsQ0FBTjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLE1BQUosR0FBYSxHQUFiO0FBQ0EsV0FBT0gsSUFBSSxDQUFDTixHQUFELENBQVg7QUFDSCxHQUpJLE1BS0E7QUFDREEsSUFBQUEsR0FBRyxHQUFHLElBQUlRLEtBQUosQ0FBVSxnQ0FBVixDQUFOO0FBQ0FSLElBQUFBLEdBQUcsQ0FBQ1MsTUFBSixHQUFhLEdBQWI7QUFDQSxXQUFPSCxJQUFJLENBQUNOLEdBQUQsQ0FBWDtBQUNIO0FBQ0osQ0FkRCIsInNvdXJjZXNDb250ZW50IjpbInZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBMb2NhbFN0cmF0ZWd5ID0gcmVxdWlyZSgncGFzc3BvcnQtbG9jYWwnKS5TdHJhdGVneTtcclxudmFyIFVzZXIgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciBKd3RTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLlN0cmF0ZWd5O1xyXG52YXIgRXh0cmFjdEp3dCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLkV4dHJhY3RKd3Q7XHJcbnZhciBqd3QgPSByZXF1aXJlKCdqc29ud2VidG9rZW4nKTtcclxuXHJcblxyXG5wYXNzcG9ydC51c2UobmV3IExvY2FsU3RyYXRlZ3koVXNlci5hdXRoZW50aWNhdGUoKSkpO1xyXG5wYXNzcG9ydC5zZXJpYWxpemVVc2VyKFVzZXIuc2VyaWFsaXplVXNlcigpKTtcclxucGFzc3BvcnQuZGVzZXJpYWxpemVVc2VyKFVzZXIuZGVzZXJpYWxpemVVc2VyKCkpO1xyXG5cclxuZXhwb3J0cy5nZXRUb2tlbiA9ICh1c2VyKSA9PiB7XHJcbiAgICByZXR1cm4gand0LnNpZ24odXNlciwgcHJvY2Vzcy5lbnYuc2VjcmV0S2V5LFxyXG4gICAgICAgIHsgZXhwaXJlc0luOiAzNjAwIH0pO1xyXG59O1xyXG5cclxudmFyIG9wdHMgPSB7fTtcclxub3B0cy5qd3RGcm9tUmVxdWVzdCA9IEV4dHJhY3RKd3QuZnJvbUF1dGhIZWFkZXJBc0JlYXJlclRva2VuKCk7XHJcbm9wdHMuc2VjcmV0T3JLZXkgPSBwcm9jZXNzLmVudi5zZWNyZXRLZXk7XHJcblxyXG5leHBvcnRzLmp3dFBhc3Nwb3J0ID0gcGFzc3BvcnQudXNlKG5ldyBKd3RTdHJhdGVneShvcHRzLFxyXG4gICAgKGp3dF9wYXlsb2FkLCBkb25lKSA9PiB7XHJcbiAgICAgICAgVXNlci5maW5kT25lKHsgX2lkOiBqd3RfcGF5bG9hZC5faWQgfSwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShlcnIsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCB1c2VyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkb25lKG51bGwsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSkpO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlVc2VyID0gcGFzc3BvcnQuYXV0aGVudGljYXRlKCdqd3QnLCB7IHNlc3Npb246IGZhbHNlIH0pO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ2FkbWluJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlICE9ICdhZG1pbicpIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ0FkbWluIFZlcmlmaWNhdGlvbiBGYWlsZWQhJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDUwMDtcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnZlcmlmeU1vZGVyYXRlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgIT0gJ3VzZXInKSB7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdNb2RlcmF0ZXIgVmVyaWZpY2F0aW9uIEZhaWxlZCEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNTAwO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuIl19\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Moderater Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/83/authenticate_83ba38785e68b531d6a7c8378dfee9c9.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2336\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8642,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8639,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":2},{\"startOffset\":905,\"endOffset\":943,\"count\":0},{\"startOffset\":997,\"endOffset\":1042,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1871,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4b/validation_4b7a8ff68e044daa8c6daa8312a761dc.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2369\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(newPasswordString, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, function (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating Password'\\n });\\n });\\n};\\n\\nconst logout = (req, res) => {\\n if (req.session) {\\n req.session.destroy();\\n res.clearCookie('session-id');\\n } else {\\n var err = new Error('You are not logged in!');\\n err.status = 403;\\n }\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.logout = logout;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsImZpbmRCeUlkIiwidGhlbiIsInNhbml0aXplZFVzZXIiLCJzZXRQYXNzd29yZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwibWVzc2FnZSIsImxvZ291dCIsInNlc3Npb24iLCJkZXN0cm95IiwiY2xlYXJDb29raWUiLCJFcnJvciIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBckI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBYjs7QUFFQSxJQUFJQyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxpQkFBRCxDQUFuQjs7QUFDQSxJQUFJSSxRQUFRLEdBQUdKLE9BQU8sQ0FBQyxVQUFELENBQXRCOztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUdBLE1BQU1NLFdBQVcsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUNwQyxNQUFJQyxLQUFLLEdBQUc7QUFDUkMsSUFBQUEsUUFBUSxFQUFFSixHQUFHLENBQUNLLElBQUos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LEdBQWlCLEdBQWpCO0FBQ0FiLElBQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLElBQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCa0IsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQWpCRDtBQWtCSCxDQXBCRDs7QUFzQkEsTUFBTUMsTUFBTSxHQUFHLENBQUNwQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUN6QixNQUFJRCxHQUFHLENBQUNxQyxPQUFSLEVBQWlCO0FBQ2JyQyxJQUFBQSxHQUFHLENBQUNxQyxPQUFKLENBQVlDLE9BQVo7QUFDQXJDLElBQUFBLEdBQUcsQ0FBQ3NDLFdBQUosQ0FBZ0IsWUFBaEI7QUFDSCxHQUhELE1BSUs7QUFDRCxRQUFJM0IsR0FBRyxHQUFHLElBQUk0QixLQUFKLENBQVUsd0JBQVYsQ0FBVjtBQUNBNUIsSUFBQUEsR0FBRyxDQUFDTSxNQUFKLEdBQWEsR0FBYjtBQUNIO0FBQ0osQ0FURDs7QUFXQXVCLE9BQU8sQ0FBQzFDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0EwQyxPQUFPLENBQUNyQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBcUIsT0FBTyxDQUFDTCxNQUFSLEdBQWlCQSxNQUFqQjtBQUNBSyxPQUFPLENBQUNmLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbnZhciByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxudmFyIFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG5cclxuXHJcbmNvbnN0IHNpZ251cEFkbWluID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgYWRtaW4gPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIGZpcnN0bmFtZTogcmVxLmJvZHkuZmlyc3RuYW1lLFxyXG4gICAgICAgIGxhc3RuYW1lOiByZXEuYm9keS5sYXN0bmFtZSxcclxuICAgICAgICBlbWFpbDogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgcm9sZTogJ2FkbWluJ1xyXG4gICAgfVxyXG4gICAgVXNlcnMucmVnaXN0ZXIobmV3IFVzZXJzKGFkbWluKSxcclxuICAgICAgICByZXEuYm9keS5wYXNzd29yZCwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gVW5zdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVxLmJvZHkuZmlyc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIuZmlyc3RuYW1lID0gcmVxLmJvZHkuZmlyc3RuYW1lO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5Lmxhc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIubGFzdG5hbWUgPSByZXEuYm9keS5sYXN0bmFtZTtcclxuICAgICAgICAgICAgICAgIHVzZXIuc2F2ZSgoZXJyLCB1c2VyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHN0YXR1czogJ1JlZ2lzdHJhdGlvbiBTdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dpbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgcGFzc3BvcnQuYXV0aGVudGljYXRlKCdsb2NhbCcsIChlcnIsIHVzZXIsIGluZm8pID0+IHtcclxuXHJcbiAgICAgICAgaWYgKCF1c2VyKSB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAxO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdMb2dpbiBVbnN1Y2Nlc3NmdWwhJywgZXJyOiBpbmZvIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXEubG9nSW4odXNlciwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB2YXIgdG9rZW4gPSBhdXRoZW50aWNhdGUuZ2V0VG9rZW4oeyBfaWQ6IHJlcS51c2VyLl9pZCwgcm9sZTogdXNlci5yb2xlIH0pO1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdMb2dpbiBTdWNjZXNzZnVsIScsIHRva2VuOiB0b2tlbiwgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KShyZXEsIHJlcywgbmV4dCk7XHJcbn1cclxuXHJcbmNvbnN0IGNoYW5nZVBhc3Nvd29yZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHVzZXJJZCA9IHJlcS5wYXJhbXMuaWQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKG5ld1Bhc3N3b3JkU3RyaW5nLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ3Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgZnVuY3Rpb24gKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIFBhc3N3b3JkJyB9KTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dvdXQgPSAocmVxLCByZXMpID0+IHtcclxuICAgIGlmIChyZXEuc2Vzc2lvbikge1xyXG4gICAgICAgIHJlcS5zZXNzaW9uLmRlc3Ryb3koKTtcclxuICAgICAgICByZXMuY2xlYXJDb29raWUoJ3Nlc3Npb24taWQnKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGxvZ2dlZCBpbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5sb2dvdXQgPSBsb2dvdXQ7XHJcbmV4cG9ydHMuY2hhbmdlUGFzc293b3JkID0gY2hhbmdlUGFzc293b3JkOyJdfQ==\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(newPasswordString, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, function (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating Password' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst logout = (req, res) => {\\r\\n if (req.session) {\\r\\n req.session.destroy();\\r\\n res.clearCookie('session-id');\\r\\n }\\r\\n else {\\r\\n var err = new Error('You are not logged in!');\\r\\n err.status = 403;\\r\\n }\\r\\n}\\r\\n\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.logout = logout;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1b/userController_1b7f9872a721ffd88b6634cf95f37bee.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2370\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13343,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13340,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1},{\"startOffset\":583,\"endOffset\":771,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":1},{\"startOffset\":1266,\"endOffset\":1490,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2707,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"logout\",\"ranges\":[{\"startOffset\":2725,\"endOffset\":2913,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/cors_34beef0e65d7cfb3f2bb7a05fb9de802.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2371\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":2},{\"startOffset\":430,\"endOffset\":481,\"count\":0}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/3b/employeeRouter_3bb83cd3174a28ed34e0f44c133b9b42.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2372\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n throw err;\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n throw err;\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while deletting.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsImZpcnN0bmFtZSIsIiRyZWdleCIsIiRvcHRpb25zIiwic29ydGJ5Iiwic29ydEJ5Iiwic29ydCIsImFkZEVtcGxveWVlIiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJlbXBsb3llZSIsInVzZXJuYW1lIiwiZW1haWwiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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QUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFRixHQUFHLENBQUNFO0FBQS9CLEtBQVQ7QUFDSCxHQVhMO0FBWUgsQ0FiRDs7QUFlQTJCLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNLLHlCQUFSLEdBQW9DQSx5QkFBcEM7QUFDQUwsT0FBTyxDQUFDUyxtQkFBUixHQUE4QkEsbUJBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRW1wbG95ZWVzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMvdXRpbHMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBnZXQgZGV0YWlscyBvZiB0aGUgYXNzaXN0YW50c1xyXG4gKiBAcGFyYW0geyp9IHJlcSBcclxuICogQHBhcmFtIHsqfSByZXMgXHJcbiAqIEBwYXJhbSB7Kn0gbmV4dCBcclxuICogQHJldHVybnMge2FycmF5fSBsaXN0IG9mIGVtcGxveWVlc1xyXG4gKi9cclxuY29uc3QgZ2V0QWxsRW1wbG95ZWVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH07XHJcbiAgICBFbXBsb3llZXMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbEVtcGxveWVlc0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9O1xyXG4gICAgLy8gaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgLy8gICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgLy8gICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9XHJcbiAgICAvLyB9XHJcbiAgICBpZiAocmVxLmJvZHkuc2ltaWxhclRvKSB7XHJcbiAgICAgICAgdmFyIHNlYXJjaEJ5ID0gcmVxLmJvZHkuc2ltaWxhclRvIHx8IHt9XHJcbiAgICAgICAgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiLCBmaXJzdG5hbWU6IHsgJHJlZ2V4OiBgJHtzZWFyY2hCeX1gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgRW1wbG95ZWVzLmZpbmQocXVlcnkpLnNvcnQoc29ydGJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZ2V0dGluZyBkYXRhJyB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGVtcGxveWVlLnNhdmUoKGVyciwgZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtYWlsOiBlbXBsb3llZS5lbWFpbCwgcGFzc3dvcmQ6IHJhbmRvbVBhc3N3b3JkIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIEVtcGxveWVlcy5yZW1vdmUoeyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzID0gZ2V0QWxsRW1wbG95ZWVzO1xyXG5leHBvcnRzLmdldEFsbEVtcGxveWVlc0J5TmFtZSA9IGdldEFsbEVtcGxveWVlc0J5TmFtZTtcclxuZXhwb3J0cy5hZGRFbXBsb3llZSA9IGFkZEVtcGxveWVlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbEVtcGxveWVlcyA9IGRlbGV0ZUFsbEVtcGxveWVlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigoZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWU6IGVtcGxveWVlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGVtcGxveWVlID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdtb2RlcmF0ZXInXHJcbiAgICB9XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5lbXBsb3llZUlkLCB7XHJcbiAgICAgICAgJHNldDogZW1wbG95ZWVcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlOiBlbXBsb3llZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHVwZGF0aW5nLlwiKTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBRW1wbG95ZWVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIGRlbGV0dGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRFbXBsb3llZURldGFpbHNCeUlkID0gZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVFbXBsb3llZURldGFpbHNCeUlkID0gdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBRW1wbG95ZWVCeUlkID0gZGVsZXRlQUVtcGxveWVlQnlJZDsiXX0=\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while deletting.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4c/employeeController_4c102fe7873f734bd5117d404757cd9d.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2373\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22614,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22611,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":1053,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":1086,\"endOffset\":1976,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1999,\"endOffset\":2993,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3023,\"endOffset\":3260,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3709,\"endOffset\":3993,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4030,\"endOffset\":4740,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4771,\"endOffset\":5211,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const multer = require('multer');\\n\\nconst {\\n v4: uuidv4\\n} = require('uuid');\\n\\nlet path = require('path');\\n\\nconst storage = multer.diskStorage({\\n destination: function (req, file, cb) {\\n cb(null, 'images');\\n },\\n filename: function (req, file, cb) {\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\n }\\n});\\n\\nconst fileFilter = (req, file, cb) => {\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\n\\n if (allowedFileTypes.includes(file.mimetype)) {\\n cb(null, true);\\n } else {\\n cb(null, false);\\n }\\n};\\n\\nlet upload = multer({\\n storage,\\n fileFilter\\n});\\nexports.upload = upload;\\n\\nconst password_generator = len => {\\n var length = len ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbIm11bHRlciIsInJlcXVpcmUiLCJ2NCIsInV1aWR2NCIsInBhdGgiLCJzdG9yYWdlIiwiZGlza1N0b3JhZ2UiLCJkZXN0aW5hdGlvbiIsInJlcSIsImZpbGUiLCJjYiIsImZpbGVuYW1lIiwiRGF0ZSIsIm5vdyIsImV4dG5hbWUiLCJvcmlnaW5hbG5hbWUiLCJmaWxlRmlsdGVyIiwiYWxsb3dlZEZpbGVUeXBlcyIsImluY2x1ZGVzIiwibWltZXR5cGUiLCJ1cGxvYWQiLCJleHBvcnRzIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwibGVuIiwibGVuZ3RoIiwic3RyaW5nIiwibnVtZXJpYyIsInB1bmN0dWF0aW9uIiwicGFzc3dvcmQiLCJjaGFyYWN0ZXIiLCJjcnVuY2giLCJlbnRpdHkxIiwiTWF0aCIsImNlaWwiLCJyYW5kb20iLCJlbnRpdHkyIiwiZW50aXR5MyIsImhvbGQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNwbGl0Iiwic29ydCIsImpvaW4iLCJzdWJzdHIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxFQUFFLEVBQUVDO0FBQU4sSUFBaUJGLE9BQU8sQ0FBQyxNQUFELENBQTlCOztBQUNBLElBQUlHLElBQUksR0FBR0gsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBQ0EsTUFBTUksT0FBTyxHQUFHTCxNQUFNLENBQUNNLFdBQVAsQ0FBbUI7QUFDL0JDLEVBQUFBLFdBQVcsRUFBRSxVQUFVQyxHQUFWLEVBQWVDLElBQWYsRUFBcUJDLEVBQXJCLEVBQXlCO0FBQ2xDQSxJQUFBQSxFQUFFLENBQUMsSUFBRCxFQUFPLFFBQVAsQ0FBRjtBQUNILEdBSDhCO0FBSS9CQyxFQUFBQSxRQUFRLEVBQUUsVUFBVUgsR0FBVixFQUFlQyxJQUFmLEVBQXFCQyxFQUFyQixFQUF5QjtBQUMvQkEsSUFBQUEsRUFBRSxDQUFDLElBQUQs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LGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtdWx0ZXIgPSByZXF1aXJlKCdtdWx0ZXInKTtcclxuY29uc3QgeyB2NDogdXVpZHY0IH0gPSByZXF1aXJlKCd1dWlkJyk7XHJcbmxldCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xyXG5jb25zdCBzdG9yYWdlID0gbXVsdGVyLmRpc2tTdG9yYWdlKHtcclxuICAgIGRlc3RpbmF0aW9uOiBmdW5jdGlvbiAocmVxLCBmaWxlLCBjYikge1xyXG4gICAgICAgIGNiKG51bGwsICdpbWFnZXMnKTtcclxuICAgIH0sXHJcbiAgICBmaWxlbmFtZTogZnVuY3Rpb24gKHJlcSwgZmlsZSwgY2IpIHtcclxuICAgICAgICBjYihudWxsLCB1dWlkdjQoKSArICctJyArIERhdGUubm93KCkgKyBwYXRoLmV4dG5hbWUoZmlsZS5vcmlnaW5hbG5hbWUpKTtcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBmaWxlRmlsdGVyID0gKHJlcSwgZmlsZSwgY2IpID0+IHtcclxuICAgIGNvbnN0IGFsbG93ZWRGaWxlVHlwZXMgPSBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL3BuZyddO1xyXG4gICAgaWYgKGFsbG93ZWRGaWxlVHlwZXMuaW5jbHVkZXMoZmlsZS5taW1ldHlwZSkpIHtcclxuICAgICAgICBjYihudWxsLCB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2IobnVsbCwgZmFsc2UpO1xyXG4gICAgfVxyXG59XHJcblxyXG5sZXQgdXBsb2FkID0gbXVsdGVyKHsgc3RvcmFnZSwgZmlsZUZpbHRlciB9KTtcclxuXHJcbmV4cG9ydHMudXBsb2FkID0gdXBsb2FkO1xyXG5cclxuY29uc3QgcGFzc3dvcmRfZ2VuZXJhdG9yID0gKGxlbikgPT4ge1xyXG4gICAgdmFyIGxlbmd0aCA9IChsZW4pID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfH17W11cXDo7Pz48LC4vLT0nO1xyXG4gICAgdmFyIHBhc3N3b3JkID0gXCJcIjtcclxuICAgIHZhciBjaGFyYWN0ZXIgPSBcIlwiO1xyXG4gICAgdmFyIGNydW5jaCA9IHRydWU7XHJcbiAgICB3aGlsZSAocGFzc3dvcmQubGVuZ3RoIDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgZW50aXR5MSA9IE1hdGguY2VpbChzdHJpbmcubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTIgPSBNYXRoLmNlaWwobnVtZXJpYy5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgZW50aXR5MyA9IE1hdGguY2VpbChwdW5jdHVhdGlvbi5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgaG9sZCA9IHN0cmluZy5jaGFyQXQoZW50aXR5MSk7XHJcbiAgICAgICAgaG9sZCA9IChwYXNzd29yZC5sZW5ndGggJSAyID09IDApID8gKGhvbGQudG9VcHBlckNhc2UoKSkgOiAoaG9sZCk7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IGhvbGQ7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IG51bWVyaWMuY2hhckF0KGVudGl0eTIpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBwdW5jdHVhdGlvbi5jaGFyQXQoZW50aXR5Myk7XHJcbiAgICAgICAgcGFzc3dvcmQgPSBjaGFyYWN0ZXI7XHJcbiAgICB9XHJcbiAgICBwYXNzd29yZCA9IHBhc3N3b3JkLnNwbGl0KCcnKS5zb3J0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAuNSAtIE1hdGgucmFuZG9tKCkgfSkuam9pbignJyk7XHJcbiAgICByZXR1cm4gcGFzc3dvcmQuc3Vic3RyKDAsIGxlbmd0aCk7XHJcbn1cclxuXHJcbmV4cG9ydHMucGFzc3dvcmRfZ2VuZXJhdG9yID0gcGFzc3dvcmRfZ2VuZXJhdG9yOyJdfQ==\",\"originalCode\":\"const multer = require('multer');\\r\\nconst { v4: uuidv4 } = require('uuid');\\r\\nlet path = require('path');\\r\\nconst storage = multer.diskStorage({\\r\\n destination: function (req, file, cb) {\\r\\n cb(null, 'images');\\r\\n },\\r\\n filename: function (req, file, cb) {\\r\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\r\\n }\\r\\n});\\r\\n\\r\\nconst fileFilter = (req, file, cb) => {\\r\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\r\\n if (allowedFileTypes.includes(file.mimetype)) {\\r\\n cb(null, true);\\r\\n } else {\\r\\n cb(null, false);\\r\\n }\\r\\n}\\r\\n\\r\\nlet upload = multer({ storage, fileFilter });\\r\\n\\r\\nexports.upload = upload;\\r\\n\\r\\nconst password_generator = (len) => {\\r\\n var length = (len) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/f3/utils_f37ac8376b54b6ced952605900298d07.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2374\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":7861,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":7858,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"destination\",\"ranges\":[{\"startOffset\":248,\"endOffset\":302,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"filename\",\"ranges\":[{\"startOffset\":316,\"endOffset\":423,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"fileFilter\",\"ranges\":[{\"startOffset\":448,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":752,\"endOffset\":1636,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9d/placeRouter_9d9aca2c41f2c1b6283bdacdd67537b2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2415\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/ee/placeController_ee3a20e34d4d356553af723b6f7f6a6e.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2416\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwidmVyaWZ5TW9kZXJhdGVyIiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNB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T0FBUCxHQUFpQjlCLGNBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHNjaGVkdWxlQ29udHJvbGxlciA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3NjaGVkdWxlQ29udHJvbGxlcicpXHJcblxyXG5jb25zdCBzY2hlZHVsZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgUm91dGVzXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnLycpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeU1vZGVyYXRlciwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlQWxsU2NoZWR1bGVzKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBSb3V0ZXMgT24gSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvOnNjaGVkdWxlSWQnKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgc2NoZWR1bGVDb250cm9sbGVyLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvc2NoZWR1bGVzLycgKyByZXEucGFyYW1zLnNjaGVkdWxlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIudXBkYXRlU2NoZWR1bGVCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgc2NoZWR1bGVDb250cm9sbGVyLmRlbGV0ZVNjaGVkdWxlQnlJZCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnL3VzZXIvOnVzZXJJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAgc2NoZWR1bGVDb250cm9sbGVyLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gc2NoZWR1bGVSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9b/scheduleRouter_9b57edc7078385d142c957dea9d9e0be.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2417\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9621,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9618,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1085,\"endOffset\":1188,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1621,\"endOffset\":1661,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1824,\"endOffset\":1953,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2288,\"endOffset\":2328,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to add a schedule\\\"\\n });\\n });\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Update failed\\\"\\n });\\n });\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Delete failed\\\"\\n });\\n });\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwibXNnIiwiX21lc3NhZ2UiLCJhZGRTY2hlZHVsZSIsInNjaGVkdWxlIiwidXNlciIsImJvZHkiLCJwbGFjZSIsImRhdGUiLCJzdGF0ZSIsInRyYXZlbGxpbmdNZXRob2QiLCJjcmVhdGUiLCJkZWxldGVBbGxTY2hlZHVsZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInNjaGVkdWxlSWQiLCJ1cGRhdGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxxQkFBRCxDQUF6QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3hDTCxFQUFBQSxTQUFTLENBQUNNLElBQVYsQ0FBZUgsR0FBRyxDQUFDSSxLQUFuQixFQUEwQkMsUUFBMUIsQ0FBbUMsT0FBbkMsRUFBNENBLFFBQTVDLENBQXFELE1BQXJELEVBQ0tDLElBREwsQ0FDV0MsU0FBRCxJQUFlO0FBQ2pCTixJQUFBQSxHQUFHLENBQUNPLFVBQUosR0FBaUIs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Q1cwQixJQUFELElBQVU7QUFDWi9CLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQmdDLE1BQUFBLFFBQVEsRUFBQ1g7QUFBMUIsS0FBVDtBQUNILEdBTEwsRUFLUXBCLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTO0FBQ1pYLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQVZMO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gZ2V0IGRhdGFcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJ1c2VyXCI6IFN0cmluZyhyZXEucGFyYW1zLnVzZXJJZCkgfTtcclxuICAgIFNjaGVkdWxlcy5maW5kKHF1ZXJ5KS5wb3B1bGF0ZShcInBsYWNlXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+ICB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICBjb25zdCBtc2cgPSBlcnIuX21lc3NhZ2U7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IG1zZyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkZhaWxlZCB0byBnZXQgZGF0YVwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBhZGRTY2hlZHVsZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHNjaGVkdWxlID0ge1xyXG4gICAgICAgIHVzZXI6IHJlcS5ib2R5LnVzZXIsXHJcbiAgICAgICAgcGxhY2U6IHJlcS5ib2R5LnBsYWNlLFxyXG4gICAgICAgIGRhdGU6IHJlcS5ib2R5LmRhdGUsXHJcbiAgICAgICAgc3RhdGU6IFwibmV3XCIsXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZDogcmVxLmJvZHkudHJhdmVsbGluZ01ldGhvZFxyXG4gICAgfVxyXG4gICAgU2NoZWR1bGVzLmNyZWF0ZShzY2hlZHVsZSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6c2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgY29uc3QgbXNnID0gZXJyLl9tZXNzYWdlO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBtc2cgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gYWRkIGEgc2NoZWR1bGVcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzID0gZ2V0QWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmFkZFNjaGVkdWxlID0gYWRkU2NoZWR1bGU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsU2NoZWR1bGVzID0gZGVsZXRlQWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyID0gZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXI7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlOnNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBwbGFjZVwiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgU2NoZWR1bGVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuc2NoZWR1bGVJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTpzY2hlZHVsZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiVXBkYXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6cmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiRGVsZXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnRzLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSBnZXRTY2hlZHVsZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVNjaGVkdWxlQnlJZCA9IHVwZGF0ZVNjaGVkdWxlQnlJZDtcclxuZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5SWQgPSBkZWxldGVTY2hlZHVsZUJ5SWQ7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgVXNlcklEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vLyBjb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4vLyAgICAgU2NoZWR1bGVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuc2NoZWR1bGVJZClcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuLy8gICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4vLyAgICAgfSwgeyBuZXc6IHRydWUgfSlcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IGRlbGV0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4vLyAgICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuLy8gICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxuLy8gfSJdfQ==\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to add a schedule\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Update failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response:resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Delete failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1e/scheduleController_1ed35fc0c47927fadcf3cf43433b4df6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2542\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23520,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23517,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":846,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":881,\"endOffset\":1554,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"Schedules.find.populate.then.res.statusCode\",\"ranges\":[{\"startOffset\":1009,\"endOffset\":1179,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1181,\"endOffset\":1368,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1376,\"endOffset\":1550,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1577,\"endOffset\":2348,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2378,\"endOffset\":2588,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":3041,\"endOffset\":3489,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3519,\"endOffset\":4012,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":4042,\"endOffset\":4480,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/e2/schedules_e2f8e79bc28961f4db3736c92d490e47.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2543\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0a/touristRouter_0ad938586662daadc81c6cb1ad2e0f53.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2545\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var error = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while deleting data'\\n });\\n });\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJtZXNzYWdlIiwiZ2V0QWxsVG91cmlzdHNCeU5hbWUiLCJib2R5Iiwic2ltaWxhclRvIiwic2VhcmNoQnkiLCIkdGV4dCIsIiRzZWFyY2giLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkVG91cmlzdCIsInJhbmRvbVBhc3N3b3JkIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwidG91cmlzdCIsInVzZXJuYW1lIiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsIm1vYmlsZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxUb3VyaXN0cyIsInJlbW92ZSIsInJlc3AiLCJyZXNwb25zZSIsImV4cG9ydHMiLCJnZXRUb3VyaXN0RGV0YWlsc0J5SWQiLCJ0b3VyaXN0SWQiLCJwYXJhbXMiLCJmaW5kQnlJZCIsInVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCIsImZpbmRCeUlkQW5kVXBkYXRlIiwiJHNldCIsIm5ldyIsImRlbGV0ZUFUb3VyaXN0QnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUUsY0FBYyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLE1BQUlDLEtB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O0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCK0IsTUFBQUEsUUFBUSxFQUFFRDtBQUEzQixLQUFUO0FBQ0gsR0FMTCxFQUtRN0IsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVM7QUFDWlYsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCRyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNILEdBVkw7QUFXSCxDQVpEOztBQWNBNkIsT0FBTyxDQUFDQyxxQkFBUixHQUFnQ0EscUJBQWhDO0FBQ0FELE9BQU8sQ0FBQ0ssd0JBQVIsR0FBbUNBLHdCQUFuQztBQUNBTCxPQUFPLENBQUNTLGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBUb3VyaXN0cyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG5jb25zdCB1dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzL3V0aWxzJyk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsVG91cmlzdHMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiIH07XHJcbiAgICAvLyB2YXIgb2JqID0gT2JqZWN0LmFzc2lnbihxdWVyeSwgeyAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH0pO1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgfVxyXG5cclxuICAgIHZhciBzb3J0YnkgPSByZXEuYm9keS5zb3J0QnkgfHwge307XHJcbiAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHRvdXJpc3RJZCA9IHJlcS5wYXJhbXMudG91cmlzdElkO1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWQodG91cmlzdElkKVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTsgXHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgXHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnRvdXJpc3RJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gIHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6ICdDb3VsZCBub3QgZmluZCB0b3VyaXN0IHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFUb3VyaXN0QnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy50b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZGVsZXRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcbiJdfQ==\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var error = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while deleting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9e/touristController_9ee6bfceb00c4d02fdcd8e12f129a687.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2546\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23082,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23079,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":954,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":986,\"endOffset\":1675,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1697,\"endOffset\":3064,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":3093,\"endOffset\":3369,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3808,\"endOffset\":4292,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":4328,\"endOffset\":4839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4869,\"endOffset\":5317,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/07/dashboardRouter_0791a49f2f45fc0f57ade98f27175c5c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2547\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/dashboardController_34872bbac017cfae6fcc33926d204118.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2548\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const app = require('../../app');\\n\\nconst server = require(\\\"supertest\\\")(app);\\n\\nconst jwt_decode = require('jwt-decode');\\n\\nconst Users = require('../../models/users');\\n\\nvar userToken;\\nvar assistantToken;\\nvar adminToken;\\nconst admin = {\\n \\\"firstname\\\": \\\"Admin\\\",\\n \\\"lastname\\\": \\\"Admin\\\",\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\n \\\"password\\\": \\\"admin-password\\\"\\n};\\nconst assistant = {\\n \\\"firstname\\\": \\\"Dinesh\\\",\\n \\\"lastname\\\": \\\"Chandimal\\\",\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\n};\\nconst tourist = {\\n \\\"firstname\\\": \\\"Sunil\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\n};\\n\\nconst signupAdmin = async () => {\\n await Users.deleteMany({});\\n await server.post(\\\"/users/signup/admin\\\").send(admin);\\n};\\n\\nconst getAdminToken = async () => {\\n if (adminToken) {\\n return adminToken;\\n }\\n\\n await signupAdmin();\\n var creds = {\\n username: admin.email,\\n password: admin.password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n adminToken = response.body.token;\\n return adminToken;\\n};\\n\\nconst addAssistant = async () => {\\n if (!adminToken) {\\n await getAdminToken();\\n }\\n\\n const response = await server.post(\\\"/employees\\\").set(\\\"Authorization\\\", `Bearer ${adminToken}`).send(assistant).expect(200);\\n return response.body.password;\\n};\\n\\nconst getAssistantToken = async () => {\\n if (assistantToken) {\\n return assistantToken;\\n }\\n\\n const password = await addAssistant();\\n var creds = {\\n username: assistant.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n assistantToken = response.body.token;\\n return assistantToken;\\n};\\n\\nconst addTourist = async () => {\\n if (!assistantToken) {\\n await getAssistantToken();\\n }\\n\\n const response = await server.post(\\\"/tourists\\\").set(\\\"Authorization\\\", `Bearer ${assistantToken}`).send(tourist).expect(200);\\n return response.body.password;\\n};\\n\\nconst getTouristToken = async () => {\\n if (userToken) {\\n return userToken;\\n }\\n\\n const password = await addTourist();\\n var creds = {\\n username: tourist.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n userToken = response.body.token;\\n return userToken;\\n};\\n\\nconst getExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Namal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\n \\\"mobile\\\": \\\"981114844\\\",\\n \\\"rommnumber\\\": \\\"41\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n return tourist._id.toString();\\n};\\n\\nconst getNonExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Kamal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n await tourist.remove();\\n return tourist._id.toString();\\n};\\n\\nconst decodeToken = token => {\\n var decoded = jwt_decode(token);\\n return decoded;\\n};\\n\\nmodule.exports = {\\n getAdminToken,\\n getAssistantToken,\\n getTouristToken,\\n decodeToken,\\n addTourist,\\n getTouristToken,\\n getExistingId,\\n getNonExistingId\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJfaGVscGVyLmpzIl0sIm5hbWVzIjpbImFwcCIsInJlcXVpcmUiLCJzZXJ2ZXIiLCJqd3RfZGVjb2RlIiwiVXNlcnMiLCJ1c2VyVG9rZW4iLCJhc3Npc3RhbnRUb2tlbiIsImFkbWluVG9rZW4iLCJhZG1pbiIsImFzc2lzdGFudCIsInRvdXJpc3QiLCJzaWdudXBBZG1pbiIsImRlbGV0ZU1hbnkiLCJwb3N0Iiwic2VuZCIsImdldEFkbWluVG9rZW4iLCJjcmVkcyIsInVzZXJuYW1lIiwiZW1haWwiLCJwYXNzd29yZCIsInJlc3BvbnNlIiwiYm9keSIsInRva2VuIiwiYWRkQXNzaXN0YW50Iiwic2V0IiwiZXhwZWN0IiwiZ2V0QXNzaXN0YW50VG9rZW4iLCJhZGRUb3VyaXN0IiwiZ2V0VG91cmlzdFRva2VuIiwiZ2V0RXhpc3RpbmdJZCIsIm5ld1RvdXJpc3QiLCJzYXZlIiwiX2lkIiwidG9TdHJpbmciLCJnZXROb25FeGlzdGluZ0lkIiwicmVtb3ZlIiwiZGVjb2RlVG9rZW4iLCJkZWNvZGVkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsV0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxXQUFELENBQVAsQ0FBcUJELEdBQXJCLENBQWY7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHRixPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNRyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxvQkFBRCxDQUFyQjs7QUFFQSxJQUFJSSxTQUFKO0FBQ0EsSUFBSUMsY0FBSjtBQUNBLElBQUlDLFVBQUo7QUFDQSxNQUFNQyxLQUFLLEdBQUc7QUFDVixlQUFhLE9BREg7QUFFVixjQUFZLE9BRkY7QUFHVixXQUFTLGlCQUhDO0FBSVYsY0FBWTtBQUpGLENBQWQ7QUFNQSxNQUFNQyxTQUFTLEdBQUc7QUFDZCxlQUFhLFFBREM7QUFFZCxjQUFZLFdBRkU7QUFHZCxXQUFTO0FB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QyxFQUFBQSxlQUQvRDtBQUNnRkMsRUFBQUEsYUFEaEY7QUFDK0ZLLEVBQUFBO0FBRC9GLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXBwID0gcmVxdWlyZSgnLi4vLi4vYXBwJyk7XHJcbmNvbnN0IHNlcnZlciA9IHJlcXVpcmUoXCJzdXBlcnRlc3RcIikoYXBwKTtcclxuY29uc3Qgand0X2RlY29kZSA9IHJlcXVpcmUoJ2p3dC1kZWNvZGUnKTtcclxuY29uc3QgVXNlcnMgPSByZXF1aXJlKCcuLi8uLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciB1c2VyVG9rZW47XHJcbnZhciBhc3Npc3RhbnRUb2tlbjtcclxudmFyIGFkbWluVG9rZW47XHJcbmNvbnN0IGFkbWluID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJBZG1pblwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkFkbWluXCIsXHJcbiAgICBcImVtYWlsXCI6IFwiYWRtaW5AZ21haWwuY29tXCIsXHJcbiAgICBcInBhc3N3b3JkXCI6IFwiYWRtaW4tcGFzc3dvcmRcIlxyXG59O1xyXG5jb25zdCBhc3Npc3RhbnQgPSB7XHJcbiAgICBcImZpcnN0bmFtZVwiOiBcIkRpbmVzaFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkNoYW5kaW1hbFwiLFxyXG4gICAgXCJlbWFpbFwiOiBcImRpbmVzaGNoYW5kaW1hbEBnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCB0b3VyaXN0ID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJTdW5pbFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkZlcm5hbWRvXCIsXHJcbiAgICBcImVtYWlsXCI6IFwic3VuaWxGZXJuYW1kb0BnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCBzaWdudXBBZG1pbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGF3YWl0IFVzZXJzLmRlbGV0ZU1hbnkoe30pO1xyXG4gICAgYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvdXNlcnMvc2lnbnVwL2FkbWluXCIpXHJcbiAgICAgICAgLnNlbmQoYWRtaW4pO1xyXG59O1xyXG5cclxuY29uc3QgZ2V0QWRtaW5Ub2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhZG1pblRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbiAgICB9XHJcbiAgICBhd2FpdCBzaWdudXBBZG1pbigpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiBhZG1pbi5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogYWRtaW4ucGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFkbWluVG9rZW4gPSByZXNwb25zZS5ib2R5LnRva2VuO1xyXG4gICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGFkZEFzc2lzdGFudCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYWRtaW5Ub2tlbikge1xyXG4gICAgICAgIGF3YWl0IGdldEFkbWluVG9rZW4oKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvZW1wbG95ZWVzXCIpXHJcbiAgICAgICAgLnNldChcIkF1dGhvcml6YXRpb25cIiwgYEJlYXJlciAke2FkbWluVG9rZW59YClcclxuICAgICAgICAuc2VuZChhc3Npc3RhbnQpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRBc3Npc3RhbnRUb2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhc3Npc3RhbnRUb2tlbikge1xyXG4gICAgICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkQXNzaXN0YW50KCk7XHJcbiAgICB2YXIgY3JlZHMgPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IGFzc2lzdGFudC5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogcGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFzc2lzdGFudFRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxufVxyXG5cclxuY29uc3QgYWRkVG91cmlzdCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYXNzaXN0YW50VG9rZW4pIHtcclxuICAgICAgICBhd2FpdCBnZXRBc3Npc3RhbnRUb2tlbigpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi90b3VyaXN0c1wiKVxyXG4gICAgICAgIC5zZXQoXCJBdXRob3JpemF0aW9uXCIsIGBCZWFyZXIgJHthc3Npc3RhbnRUb2tlbn1gKVxyXG4gICAgICAgIC5zZW5kKHRvdXJpc3QpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRUb3VyaXN0VG9rZW4gPSBhc3luYyAoKSA9PiB7XHJcbiAgICBpZiAodXNlclRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIHVzZXJUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkVG91cmlzdCgpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiB0b3VyaXN0LmVtYWlsLFxyXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlcnZlclxyXG4gICAgICAgIC5wb3N0KFwiL3VzZXJzL2xvZ2luXCIpXHJcbiAgICAgICAgLnNlbmQoY3JlZHMpO1xyXG4gICAgdXNlclRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiB1c2VyVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGdldEV4aXN0aW5nSWQgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBuZXdUb3VyaXN0ID0ge1xyXG4gICAgICAgIFwiZmlyc3RuYW1lXCI6IFwiTmFtYWxcIixcclxuICAgICAgICBcImxhc3RuYW1lXCI6IFwiRmVybmFtZG9cIixcclxuICAgICAgICBcImVtYWlsXCI6IFwibmFtYWxmZXJuYW1kb0BnbWFpbC5jb21cIixcclxuICAgICAgICBcIm1vYmlsZVwiOiBcIjk4MTExNDg0NFwiLFxyXG4gICAgICAgIFwicm9tbW51bWJlclwiIDogXCI0MVwiLFxyXG5cclxuICAgIH1cclxuICAgIGNvbnN0IHRvdXJpc3QgPSBuZXcgVXNlcnMobmV3VG91cmlzdCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnNhdmUoKTtcclxuXHJcbiAgICByZXR1cm4gdG91cmlzdC5faWQudG9TdHJpbmcoKTtcclxuXHJcbiAgICBcclxufVxyXG5cclxuY29uc3QgZ2V0Tm9uRXhpc3RpbmdJZCA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1RvdXJpc3QgPSB7XHJcbiAgICAgICAgXCJmaXJzdG5hbWVcIjogXCJLYW1hbFwiLFxyXG4gICAgICAgIFwibGFzdG5hbWVcIjogXCJGZXJuYW1kb1wiLFxyXG4gICAgICAgIFwiZW1haWxcIjogXCJrYW1hbGZlcm5hbWRvQGdtYWlsLmNvbVwiXHJcbiAgICB9XHJcbiAgICBjb25zdCB0b3VyaXN0ID0gbmV3IFVzZXJzKG5ld1RvdXJpc3QpO1xyXG4gICAgYXdhaXQgdG91cmlzdC5zYXZlKCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnJlbW92ZSgpO1xyXG5cclxuICAgIHJldHVybiB0b3VyaXN0Ll9pZC50b1N0cmluZygpO1xyXG59XHJcblxyXG5jb25zdCBkZWNvZGVUb2tlbiA9ICh0b2tlbikgPT4ge1xyXG4gICAgdmFyIGRlY29kZWQgPSBqd3RfZGVjb2RlKHRva2VuKTtcclxuICAgIHJldHVybiBkZWNvZGVkO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGdldEFkbWluVG9rZW4sIGdldEFzc2lzdGFudFRva2VuLCBnZXRUb3VyaXN0VG9rZW4sIGRlY29kZVRva2VuLCBhZGRUb3VyaXN0LCBnZXRUb3VyaXN0VG9rZW4gLGdldEV4aXN0aW5nSWQgLGdldE5vbkV4aXN0aW5nSWRcclxufVxyXG4iXX0=\",\"originalCode\":\"const app = require('../../app');\\r\\nconst server = require(\\\"supertest\\\")(app);\\r\\nconst jwt_decode = require('jwt-decode');\\r\\nconst Users = require('../../models/users');\\r\\n\\r\\nvar userToken;\\r\\nvar assistantToken;\\r\\nvar adminToken;\\r\\nconst admin = {\\r\\n \\\"firstname\\\": \\\"Admin\\\",\\r\\n \\\"lastname\\\": \\\"Admin\\\",\\r\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\r\\n \\\"password\\\": \\\"admin-password\\\"\\r\\n};\\r\\nconst assistant = {\\r\\n \\\"firstname\\\": \\\"Dinesh\\\",\\r\\n \\\"lastname\\\": \\\"Chandimal\\\",\\r\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\r\\n};\\r\\nconst tourist = {\\r\\n \\\"firstname\\\": \\\"Sunil\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\r\\n};\\r\\nconst signupAdmin = async () => {\\r\\n await Users.deleteMany({});\\r\\n await server\\r\\n .post(\\\"/users/signup/admin\\\")\\r\\n .send(admin);\\r\\n};\\r\\n\\r\\nconst getAdminToken = async () => {\\r\\n if (adminToken) {\\r\\n return adminToken;\\r\\n }\\r\\n await signupAdmin();\\r\\n var creds = {\\r\\n username: admin.email,\\r\\n password: admin.password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n adminToken = response.body.token;\\r\\n return adminToken;\\r\\n}\\r\\n\\r\\nconst addAssistant = async () => {\\r\\n if (!adminToken) {\\r\\n await getAdminToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/employees\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${adminToken}`)\\r\\n .send(assistant)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getAssistantToken = async () => {\\r\\n if (assistantToken) {\\r\\n return assistantToken;\\r\\n }\\r\\n const password = await addAssistant();\\r\\n var creds = {\\r\\n username: assistant.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n assistantToken = response.body.token;\\r\\n return assistantToken;\\r\\n}\\r\\n\\r\\nconst addTourist = async () => {\\r\\n if (!assistantToken) {\\r\\n await getAssistantToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/tourists\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${assistantToken}`)\\r\\n .send(tourist)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getTouristToken = async () => {\\r\\n if (userToken) {\\r\\n return userToken;\\r\\n }\\r\\n const password = await addTourist();\\r\\n var creds = {\\r\\n username: tourist.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n userToken = response.body.token;\\r\\n return userToken;\\r\\n}\\r\\n\\r\\nconst getExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Namal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\r\\n \\\"mobile\\\": \\\"981114844\\\",\\r\\n \\\"rommnumber\\\" : \\\"41\\\",\\r\\n\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n\\r\\n return tourist._id.toString();\\r\\n\\r\\n \\r\\n}\\r\\n\\r\\nconst getNonExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Kamal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n await tourist.remove();\\r\\n\\r\\n return tourist._id.toString();\\r\\n}\\r\\n\\r\\nconst decodeToken = (token) => {\\r\\n var decoded = jwt_decode(token);\\r\\n return decoded;\\r\\n}\\r\\n\\r\\nmodule.exports = {\\r\\n getAdminToken, getAssistantToken, getTouristToken, decodeToken, addTourist, getTouristToken ,getExistingId ,getNonExistingId\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/5d/user_helper_5d6019747344ffe72872c6622cdf23b3.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2692\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\user_helper.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13241,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13238,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":677,\"endOffset\":778,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getAdminToken\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1089,\"count\":1},{\"startOffset\":835,\"endOffset\":863,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"addAssistant\",\"ranges\":[{\"startOffset\":1113,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAssistantToken\",\"ranges\":[{\"startOffset\":1368,\"endOffset\":1686,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1708,\"endOffset\":1943,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristToken\",\"ranges\":[{\"startOffset\":1970,\"endOffset\":2264,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getExistingId\",\"ranges\":[{\"startOffset\":2289,\"endOffset\":2574,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getNonExistingId\",\"ranges\":[{\"startOffset\":2602,\"endOffset\":2862,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"decodeToken\",\"ranges\":[{\"startOffset\":2885,\"endOffset\":2950,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedule = require('../../models/schedules');\\n\\nconst mockSchedule = require('../mockData/schedule.data');\\n\\nconst mongoose = require('mongoose');\\n\\nconst addSchedulesToDb = async id => {\\n const schedules = await mockSchedule(id);\\n const scheduleObjects = schedules.map(schedule => new Schedule(schedule));\\n const promiseArray = scheduleObjects.map(schedule => schedule.save());\\n await Promise.all(promiseArray);\\n};\\n\\nconst getExistingId = async () => {\\n const newSchedule = {\\n \\\"user\\\": mongoose.Types.ObjectId(),\\n \\\"place\\\": mongoose.Types.ObjectId(),\\n \\\"date\\\": Date(),\\n \\\"travellingMethod\\\": 'Car'\\n };\\n const schedule = new Schedule(newSchedule);\\n await schedule.save();\\n return schedule._id.toString();\\n};\\n\\nconst getNonExistingId = async () => {\\n const newSchedule = {\\n \\\"user\\\": mongoose.Types.ObjectId(),\\n \\\"place\\\": mongoose.Types.ObjectId(),\\n \\\"date\\\": Date(),\\n \\\"travellingMethod\\\": 'Car'\\n };\\n const schedule = new Schedule(newSchedule);\\n await schedule.save();\\n await schedule.remove();\\n return schedule._id.toString();\\n};\\n\\nconst schedulesInDb = async () => {\\n const places = await Note.find({});\\n return places;\\n};\\n\\nmodule.exports = {\\n addSchedulesToDb,\\n getExistingId,\\n getNonExistingId,\\n schedulesInDb\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlX2hlbHBlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZSIsInJlcXVpcmUiLCJtb2NrU2NoZWR1bGUiLCJtb25nb29zZSIsImFkZFNjaGVkdWxlc1RvRGIiLCJpZCIsInNjaGVkdWxlcyIsInNjaGVkdWxlT2JqZWN0cyIsIm1hcCIsInNjaGVkdWxlIiwicHJvbWlzZUFycmF5Iiwic2F2ZSIsIlByb21pc2UiLCJhbGwiLCJnZXRFeGlzdGluZ0lkIiwibmV3U2NoZWR1bGUiLCJUeXBlcyIsIk9iamVjdElkIiwiRGF0ZSIsIl9pZCIsInRvU3RyaW5nIiwiZ2V0Tm9uRXhpc3RpbmdJZCIsInJlbW92ZSIsInNjaGVkdWxlc0luRGIiLCJwbGFjZXMiLCJOb3RlIiwiZmluZCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLFFBQVEsR0FBR0MsT0FBTyxDQUFDLHdCQUFELENBQXhCOztBQUNBLE1BQU1DLFlBQVksR0FBR0QsT0FBTyxDQUFDLDJCQUFELENBQTVCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLFVBQUQsQ0FBeEI7O0FBR0EsTUFBTUcsZ0JBQWdCLEdBQUcsTUFBT0MsRUFBUCxJQUFjO0FBQ25DLFFBQU1DLFNBQVMsR0FBRSxNQUFNSixZQUFZLENBQUNHLEVBQUQsQ0FBbkM7QUFDQSxRQUFNRSxlQUFlLEdBQUdELFNBQVMsQ0FDNUJFLEdBRG1CLENBQ2ZDLFFBQVEsSUFBSSxJQUFJVCxRQUFKLENBQWFTLFFBQWIsQ0FERyxDQUF4QjtBQUVBLFFBQU1DLFlBQVksR0FBR0gsZUFBZSxDQUFDQyxHQUFoQixDQUFvQkMsUUFBUSxJQUFJQSxRQUFRLENBQUNFLElBQVQsRUFBaEMsQ0FBckI7QUFDQSxRQUFNQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUgsWUFBWixDQUFOO0FBQ0gsQ0FORDs7QUFRQSxNQUFNSSxhQUFhLEdBQUcsWUFBWTtBQUM5QixRQUFNQyxXQUFXLEdBQUc7QUFDaEIsWUFBUVosUUFBUSxDQUFDYSxLQUFULENBQWVDLFFBQWYsRUFEUTtBQUVoQixhQUFTZCxRQUFRLENBQUNhLEtBQVQsQ0FBZUMsUUFBZixFQUZPO0FBR2hCLFlBQVFDLElBQUksRUFISTtBQUloQix3QkFBb0I7QUFKSixHQUFwQjtBQU9BLFFBQU1ULFFBQVEsR0FBRyxJQUFJVCxRQUFKLENBQWFlLFdBQWIsQ0FBakI7QUFDQSxRQUFNTixRQUFRLENBQUNFLElBQVQsRUFBTjtBQUVBLFNBQU9GLFFBQVEsQ0FBQ1UsR0FBVCxDQUFhQyxRQUFiLEVBQVA7QUFDSCxDQVpEOztBQWNBLE1BQU1DLGdCQUFnQixHQUFHLFlBQVk7QUFDakMsUUFBTU4sV0FBVyxHQUFHO0FBQ2hCLFlBQVFaLFFBQVEsQ0FBQ2EsS0FBVCxDQUFlQyxRQUFmLEVBRFE7QUFFaEIsYUFBU2QsUUFBUSxDQUFDYSxLQUFULENBQWVDLFFBQWYsRUFGTztBQUdoQixZQUFRQyxJQUFJLEVBSEk7QUFJaEIsd0JBQW9CO0FBSkosR0FBcEI7QUFPQSxRQUFNVCxRQUFRLEdBQUcsSUFBSVQsUUFBSixDQUFhZSxXQUFiLENBQWpCO0FBQ0EsUUFBTU4sUUFBUSxDQUFDRSxJQUFULEVBQU47QUFDQSxRQUFNRixRQUFRLENBQUNhLE1BQVQsRUFBTjtBQUVBLFNBQU9iLFFBQVEsQ0FBQ1UsR0FBVCxDQUFhQyxRQUFiLEVBQVA7QUFDSCxDQWJEOztBQWVBLE1BQU1HLGFBQWEsR0FBRyxZQUFZO0FBQzlCLFFBQU1DLE1BQU0sR0FBRyxNQUFNQyxJQUFJLENBQUNDLElBQUwsQ0FBVSxFQUFWLENBQXJCO0FBQ0EsU0FBT0YsTUFBUDtBQUNILENBSEQ7O0FBS0FHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNaeEIsRUFBQUEsZ0JBRFk7QUFDTVUsRUFBQUEsYUFETjtBQUNxQk8sRUFBQUEsZ0JBRHJCO0FBQ3NDRSxFQUFBQTtBQUR0QyxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5jb25zdCBtb2NrU2NoZWR1bGUgPSByZXF1aXJlKCcuLi9tb2NrRGF0YS9zY2hlZHVsZS5kYXRhJyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxuXHJcblxyXG5jb25zdCBhZGRTY2hlZHVsZXNUb0RiID0gYXN5bmMgKGlkKSA9PiB7XHJcbiAgICBjb25zdCBzY2hlZHVsZXM9IGF3YWl0IG1vY2tTY2hlZHVsZShpZCk7XHJcbiAgICBjb25zdCBzY2hlZHVsZU9iamVjdHMgPSBzY2hlZHVsZXNcclxuICAgICAgICAubWFwKHNjaGVkdWxlID0+IG5ldyBTY2hlZHVsZShzY2hlZHVsZSkpO1xyXG4gICAgY29uc3QgcHJvbWlzZUFycmF5ID0gc2NoZWR1bGVPYmplY3RzLm1hcChzY2hlZHVsZSA9PiBzY2hlZHVsZS5zYXZlKCkpO1xyXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZUFycmF5KTtcclxufVxyXG5cclxuY29uc3QgZ2V0RXhpc3RpbmdJZCA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1NjaGVkdWxlID0ge1xyXG4gICAgICAgIFwidXNlclwiOiBtb25nb29zZS5UeXBlcy5PYmplY3RJZCgpLFxyXG4gICAgICAgIFwicGxhY2VcIjogbW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQoKSxcclxuICAgICAgICBcImRhdGVcIjogRGF0ZSgpLFxyXG4gICAgICAgIFwidHJhdmVsbGluZ01ldGhvZFwiOiAnQ2FyJ1xyXG4gICAgXHJcbiAgICB9O1xyXG4gICAgY29uc3Qgc2NoZWR1bGUgPSBuZXcgU2NoZWR1bGUobmV3U2NoZWR1bGUpO1xyXG4gICAgYXdhaXQgc2NoZWR1bGUuc2F2ZSgpO1xyXG5cclxuICAgIHJldHVybiBzY2hlZHVsZS5faWQudG9TdHJpbmcoKTtcclxufVxyXG5cclxuY29uc3QgZ2V0Tm9uRXhpc3RpbmdJZCA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1NjaGVkdWxlID0ge1xyXG4gICAgICAgIFwidXNlclwiOiBtb25nb29zZS5UeXBlcy5PYmplY3RJZCgpLFxyXG4gICAgICAgIFwicGxhY2VcIjogbW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQoKSxcclxuICAgICAgICBcImRhdGVcIjogRGF0ZSgpLFxyXG4gICAgICAgIFwidHJhdmVsbGluZ01ldGhvZFwiOiAnQ2FyJ1xyXG4gICAgXHJcbiAgICB9O1xyXG4gICAgY29uc3Qgc2NoZWR1bGUgPSBuZXcgU2NoZWR1bGUobmV3U2NoZWR1bGUpO1xyXG4gICAgYXdhaXQgc2NoZWR1bGUuc2F2ZSgpO1xyXG4gICAgYXdhaXQgc2NoZWR1bGUucmVtb3ZlKCk7XHJcblxyXG4gICAgcmV0dXJuIHNjaGVkdWxlLl9pZC50b1N0cmluZygpO1xyXG59XHJcblxyXG5jb25zdCBzY2hlZHVsZXNJbkRiID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgcGxhY2VzID0gYXdhaXQgTm90ZS5maW5kKHt9KTtcclxuICAgIHJldHVybiBwbGFjZXM7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG4gICAgIGFkZFNjaGVkdWxlc1RvRGIsIGdldEV4aXN0aW5nSWQsIGdldE5vbkV4aXN0aW5nSWQsc2NoZWR1bGVzSW5EYlxyXG59Il19\",\"originalCode\":\"const Schedule = require('../../models/schedules');\\r\\nconst mockSchedule = require('../mockData/schedule.data');\\r\\nconst mongoose = require('mongoose');\\r\\n\\r\\n\\r\\nconst addSchedulesToDb = async (id) => {\\r\\n const schedules= await mockSchedule(id);\\r\\n const scheduleObjects = schedules\\r\\n .map(schedule => new Schedule(schedule));\\r\\n const promiseArray = scheduleObjects.map(schedule => schedule.save());\\r\\n await Promise.all(promiseArray);\\r\\n}\\r\\n\\r\\nconst getExistingId = async () => {\\r\\n const newSchedule = {\\r\\n \\\"user\\\": mongoose.Types.ObjectId(),\\r\\n \\\"place\\\": mongoose.Types.ObjectId(),\\r\\n \\\"date\\\": Date(),\\r\\n \\\"travellingMethod\\\": 'Car'\\r\\n \\r\\n };\\r\\n const schedule = new Schedule(newSchedule);\\r\\n await schedule.save();\\r\\n\\r\\n return schedule._id.toString();\\r\\n}\\r\\n\\r\\nconst getNonExistingId = async () => {\\r\\n const newSchedule = {\\r\\n \\\"user\\\": mongoose.Types.ObjectId(),\\r\\n \\\"place\\\": mongoose.Types.ObjectId(),\\r\\n \\\"date\\\": Date(),\\r\\n \\\"travellingMethod\\\": 'Car'\\r\\n \\r\\n };\\r\\n const schedule = new Schedule(newSchedule);\\r\\n await schedule.save();\\r\\n await schedule.remove();\\r\\n\\r\\n return schedule._id.toString();\\r\\n}\\r\\n\\r\\nconst schedulesInDb = async () => {\\r\\n const places = await Note.find({});\\r\\n return places;\\r\\n}\\r\\n\\r\\nmodule.exports = {\\r\\n addSchedulesToDb, getExistingId, getNonExistingId,schedulesInDb\\r\\n}\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fd/schedule_helper_fdff53486ff035193f245be6b39c41e9.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2694\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\schedule_helper.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":5724,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":5721,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"addSchedulesToDb\",\"ranges\":[{\"startOffset\":266,\"endOffset\":510,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":364,\"endOffset\":398,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":444,\"endOffset\":471,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getExistingId\",\"ranges\":[{\"startOffset\":535,\"endOffset\":813,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getNonExistingId\",\"ranges\":[{\"startOffset\":841,\"endOffset\":1146,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"schedulesInDb\",\"ranges\":[{\"startOffset\":1171,\"endOffset\":1241,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst {\\n getExistingId\\n} = require('../helpers/user_helper');\\n\\nconst schedule = async (id = null) => {\\n return [{\\n \\\"user\\\": mongoose.Types.ObjectId(id),\\n \\\"place\\\": mongoose.Types.ObjectId(),\\n \\\"date\\\": new Date(),\\n \\\"travellingMethod\\\": 'Bus'\\n }];\\n};\\n\\nmodule.exports = schedule;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlLmRhdGEuanMiXSwibmFtZXMiOlsibW9uZ29vc2UiLCJyZXF1aXJlIiwiZ2V0RXhpc3RpbmdJZCIsInNjaGVkdWxlIiwiaWQiLCJUeXBlcyIsIk9iamVjdElkIiwiRGF0ZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBeEI7O0FBQ0EsTUFBTTtBQUFDQyxFQUFBQTtBQUFELElBQWtCRCxPQUFPLENBQUMsd0JBQUQsQ0FBL0I7O0FBRUEsTUFBTUUsUUFBUSxHQUFHLE9BQU1DLEVBQUUsR0FBRyxJQUFYLEtBQWtCO0FBQy9CLFNBQU8sQ0FBQztBQUNKLFlBQVFKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlQyxRQUFmLENBQXdCRixFQUF4QixDQURKO0FBRUosYUFBU0osUUFBUSxDQUFDSyxLQUFULENBQWVDLFFBQWYsRUFGTDtBQUdKLFlBQVEsSUFBSUMsSUFBSixFQUhKO0FBSUosd0JBQW9CO0FBSmhCLEdBQUQsQ0FBUDtBQU9ILENBUkQ7O0FBV0FDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQk4sUUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IHtnZXRFeGlzdGluZ0lkfSA9IHJlcXVpcmUoJy4uL2hlbHBlcnMvdXNlcl9oZWxwZXInKTtcclxuXHJcbmNvbnN0IHNjaGVkdWxlID0gYXN5bmMoaWQgPSBudWxsKT0+e1xyXG4gICAgcmV0dXJuIFt7XHJcbiAgICAgICAgXCJ1c2VyXCI6IG1vbmdvb3NlLlR5cGVzLk9iamVjdElkKGlkKSxcclxuICAgICAgICBcInBsYWNlXCI6IG1vbmdvb3NlLlR5cGVzLk9iamVjdElkKCksXHJcbiAgICAgICAgXCJkYXRlXCI6IG5ldyBEYXRlKCksXHJcbiAgICAgICAgXCJ0cmF2ZWxsaW5nTWV0aG9kXCI6ICdCdXMnXHJcbiAgICBcclxuICAgIH1dO1xyXG59XHJcblxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBzY2hlZHVsZTsiXX0=\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst {getExistingId} = require('../helpers/user_helper');\\r\\n\\r\\nconst schedule = async(id = null)=>{\\r\\n return [{\\r\\n \\\"user\\\": mongoose.Types.ObjectId(id),\\r\\n \\\"place\\\": mongoose.Types.ObjectId(),\\r\\n \\\"date\\\": new Date(),\\r\\n \\\"travellingMethod\\\": 'Bus'\\r\\n \\r\\n }];\\r\\n}\\r\\n\\r\\n\\r\\nmodule.exports = schedule;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/ac/scheduledata_ac56f896a1cf3b724acb9bae429c45f0.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2695\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\mockData\\\\schedule.data.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":1745,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":1742,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"schedule\",\"ranges\":[{\"startOffset\":209,\"endOffset\":386,\"count\":1}],\"isBlockCoverage\":true}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":14,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1614411954126,\"runtime\":2823,\"slow\":false,\"start\":1614411951303},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\tourist.test.js\",\"testResults\":[{\"ancestorTitles\":[\"Tourist Model\"],\"duration\":0,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Tourist Model Tourist model exists\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Tourist model exists\"},{\"ancestorTitles\":[\"GET /tourists\"],\"duration\":12,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /tourists requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /tourists\"],\"duration\":16,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /tourists with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /tourists\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"POST /tourists\"],\"duration\":337,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /tourists\"],\"duration\":21,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists with invalid Authorization - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with invalid Authorization - 403\"},{\"ancestorTitles\":[\"POST /tourists\"],\"duration\":19,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists already existing - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"already existing - 403\"},{\"ancestorTitles\":[\"POST /tourists\"],\"duration\":15,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists validation failed - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"validation failed - 403\"},{\"ancestorTitles\":[\"POST /tourists\",\"POST /tourists/search\"],\"duration\":21,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists POST /tourists/search requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"POST /tourists\",\"POST /tourists/search\"],\"duration\":48,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists POST /tourists/search with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /tourists\",\"POST /tourists/search\"],\"duration\":21,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists POST /tourists/search with Authorization - another one - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - another one - 200\"},{\"ancestorTitles\":[\"PUT /tourists\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /tourists does not support - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"does not support - 403\"},{\"ancestorTitles\":[\"DELETE /tourists\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /tourists requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"DELETE /tourists\"],\"duration\":39,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /tourists with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/01/app_010e21b7416079df77678cc6cb70a530.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nvar upload = require('../controllers/upload');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\", authenticate.verifyUser, upload.UploadUserImage);\\nuserRouter.get('/logout', authenticate.verifyUser, userController.logout);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsInVwbG9hZCIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwiVXBsb2FkVXNlckltYWdlIiwiZ2V0IiwibG9nb3V0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLElBQUlJLE1BQU0sR0FBR0osT0FBTyxDQUFDLHVCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUssRUFBQUE7QUFBRixJQUFrQkwsT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlNLFlBQVksR0FBR04sT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlPLGVBQWUsR0FBR1AsT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlRLGNBQWMsR0FBR1IsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1TLElBQUksR0FBR1QsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1MsR0FBWCxDQUFlUCxVQUFVLENBQUNRLElBQVgsRUFBZjtBQUVBVixVQUFVLENBQUNXLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZixVQUFVLENBQUNnQixJQUFYLENBQWdCLGVBQWhCLEVBQWlDUixJQUFJLENBQUNJLGVBQXRDLEVBQXVETCxjQUFjLENBQUNVLFdBQXRFO0FBRUFqQixVQUFVLENBQUNnQixJQUFYLENBQWdCLFFBQWhCLEVBQTBCUixJQUFJLENBQUNJLGVBQS9CLEVBQWdETCxjQUFjLENBQUNXLEtBQS9EO0FBRUFsQixVQUFVLENBQUNnQixJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBcEIsVUFBVSxDQUFDZ0IsSUFBWCxDQUFnQiwyQkFBaEIsRUFBNENYLFlBQVksQ0FBQ2MsVUFBekQsRUFBcUVoQixNQUFNLENBQUNrQixlQUE1RTtBQUVBckIsVUFBVSxDQUFDc0IsR0FBWCxDQUFlLFNBQWYsRUFBeUJqQixZQUFZLENBQUNjLFVBQXRDLEVBQWtEWixjQUFjLENBQUNnQixNQUFqRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJ6QixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxudmFyIHVwbG9hZCA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3VwbG9hZCcpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG52YXIgdXNlckNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy91c2VyQ29udHJvbGxlcicpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcblxyXG51c2VyUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG51c2VyUm91dGVyLm9wdGlvbnMoJyonLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcblxyXG51c2VyUm91dGVyLnBvc3QoJy9zaWdudXAvYWRtaW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIuc2lnbnVwQWRtaW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvbG9naW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIubG9naW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvY2hhbmdlcGFzc293b3JkLzppZCcsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVzZXJDb250cm9sbGVyLmNoYW5nZVBhc3Nvd29yZCk7XHJcblxyXG51c2VyUm91dGVyLnBvc3QoXCIvdXBkYXRlcHJvZmlsZXBpY3R1cmUvOmlkXCIsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVwbG9hZC5VcGxvYWRVc2VySW1hZ2UpO1xyXG5cclxudXNlclJvdXRlci5nZXQoJy9sb2dvdXQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5sb2dvdXQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nvar upload = require('../controllers/upload');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\",authenticate.verifyUser, upload.UploadUserImage);\\r\\n\\r\\nuserRouter.get('/logout',authenticate.verifyUser, userController.logout);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/a6/userRouter_a6221ff3be20743fe1c0fd1dc9fd8435.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4566,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4563,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":606,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const sharp = require('sharp');\\n\\nconst uid = require('uid');\\n\\nconst fs = require('fs');\\n\\nconst Users = require('../models/users');\\n\\nconst Places = require('../models/visitingPlaces');\\n\\nconst uploadFile = async (req, res) => {\\n try {\\n await upload(req, res);\\n\\n if (req.file == undefined) {\\n return res.send(`You must select a file.`);\\n }\\n\\n return res.send(`File has been uploaded.`);\\n } catch (error) {\\n return res.send(`Error when trying upload image: ${error}`);\\n }\\n};\\n\\nconst UploadUserImage = async (req, res, next) => {\\n try {\\n const user_id = req.params._id;\\n const user = await Users.findById(user_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/userImages/${imageUrl}`;\\n let previousImagePath = `images/userImages/${user.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'profile.png';\\n }\\n\\n user.image = imageUrl;\\n await user.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nconst uploadPlaceImage = async (req, res, next) => {\\n try {\\n const place_id = req.params._id;\\n const user = await Places.findById(place_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/placeImages/${imageUrl}`;\\n let previousImagePath = `images/placeImages/${place.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'image.png';\\n }\\n\\n place.image = imageUrl;\\n await place.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nexports.UploadUserImage = UploadUserImage;\\nexports.uploadFile = uploadFile;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVwbG9hZC5qcyJdLCJuYW1lcyI6WyJzaGFycCIsInJlcXVpcmUiLCJ1aWQiLCJmcyIsIlVzZXJzIiwiUGxhY2VzIiwidXBsb2FkRmlsZSIsInJlcSIsInJlcyIsInVwbG9hZCIsImZpbGUiLCJ1bmRlZmluZWQiLCJzZW5kIiwiZXJyb3IiLCJVcGxvYWRVc2VySW1hZ2UiLCJuZXh0IiwidXNlcl9pZCIsInBhcmFtcyIsIl9pZCIsInVzZXIiLCJmaW5kQnlJZCIsImltYWdlVXJsIiwib3JpZ2luYWxuYW1lIiwiZmlsZW5hbWUiLCJwcmV2aW91c0ltYWdlUGF0aCIsImltYWdlIiwiaW1hZ2VFeGlzdCIsImV4aXN0c1N5bmMiLCJkZWxldGVJbWFnZSIsInBhdGgiLCJyb3RhdGUiLCJyZXNpemUiLCJ0b0ZpbGUiLCJ1bmxpbmsiLCJlcnIiLCJzYXZlIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwibWVzc2FnZSIsInVwbG9hZFBsYWNlSW1hZ2UiLCJwbGFjZV9pZCIsInBsYWNlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsT0FBRCxDQUFyQjs7QUFDQSxNQUFNQyxHQUFHLEdBQUdELE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLElBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsS0FBSyxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBckI7O0FBQ0EsTUFBTUksTUFBTSxHQUFHSixPQUFPLENBQUMsMEJBQUQsQ0FBdEI7O0FBRUEsTUFBTUssVUFBVSxHQUFHLE9BQU9DLEdBQVAsRUFBWUMsR0FBWixLQUFvQjtBQUNuQyxNQUFJO0FBQ0EsVUFBTUMsTUFBTSxDQUFDRixHQUFELEVBQU1DLEdBQU4sQ0FBWjs7QUFFQSxRQUFJRCxHQUFHLENBQUNHLElBQUosSUFBWUMsU0FBaEIsRUFBMkI7QUFDdkIsYUFBT0gsR0FBRyxDQUFDSSxJQUFK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QUFkLEVBQThCLGtCQUE5QjtBQUNBN0IsSUFBQUEsR0FBRyxDQUFDOEIsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCQyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNIO0FBQ0osQ0F6Q0Q7O0FBMkNBSSxPQUFPLENBQUM5QixlQUFSLEdBQTBCQSxlQUExQjtBQUNBOEIsT0FBTyxDQUFDdEMsVUFBUixHQUFxQkEsVUFBckIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzaGFycCA9IHJlcXVpcmUoJ3NoYXJwJyk7XHJcbmNvbnN0IHVpZCA9IHJlcXVpcmUoJ3VpZCcpO1xyXG5jb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XHJcbmNvbnN0IFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFBsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpXHJcblxyXG5jb25zdCB1cGxvYWRGaWxlID0gYXN5bmMgKHJlcSwgcmVzKSA9PiB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHVwbG9hZChyZXEsIHJlcyk7XHJcblxyXG4gICAgICAgIGlmIChyZXEuZmlsZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBZb3UgbXVzdCBzZWxlY3QgYSBmaWxlLmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBGaWxlIGhhcyBiZWVuIHVwbG9hZGVkLmApO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICByZXR1cm4gcmVzLnNlbmQoYEVycm9yIHdoZW4gdHJ5aW5nIHVwbG9hZCBpbWFnZTogJHtlcnJvcn1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IFVwbG9hZFVzZXJJbWFnZSA9IGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBjb25zdCB1c2VyX2lkID0gcmVxLnBhcmFtcy5faWQ7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IGF3YWl0IFVzZXJzLmZpbmRCeUlkKHVzZXJfaWQpO1xyXG5cclxuICAgICAgICBsZXQgaW1hZ2VVcmw7XHJcbiAgICAgICAgaWYgKHJlcS5maWxlKSB7XHJcbiAgICAgICAgICAgIGltYWdlVXJsID0gYCR7dWlkKCl9X18ke3JlcS5maWxlLm9yaWdpbmFsbmFtZX1gO1xyXG4gICAgICAgICAgICBsZXQgZmlsZW5hbWUgPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHtpbWFnZVVybH1gO1xyXG4gICAgICAgICAgICBsZXQgcHJldmlvdXNJbWFnZVBhdGggPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHt1c2VyLmltYWdlfWA7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpbWFnZUV4aXN0ID0gZnMuZXhpc3RzU3luYyhwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIGlmIChpbWFnZUV4aXN0KSB7XHJcbiAgICAgICAgICAgICAgICBkZWxldGVJbWFnZShwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYXdhaXQgc2hhcnAocmVxLmZpbGUucGF0aClcclxuICAgICAgICAgICAgICAgIC5yb3RhdGUoKVxyXG4gICAgICAgICAgICAgICAgLnJlc2l6ZSg1MDAsIDUwMClcclxuICAgICAgICAgICAgICAgIC50b0ZpbGUoZmlsZW5hbWUpO1xyXG5cclxuICAgICAgICAgICAgZnMudW5saW5rKHJlcS5maWxlLnBhdGgsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9ICdwcm9maWxlLnBuZyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1c2VyLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgdXNlci5zYXZlKCk7XHJcblxyXG5cclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1N1Y2Nlc3NmdWxseSB1cGRhdGVkIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcblxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgdXBkYXRpbmcgcHJvZmlsZSBwaWN0dXJlJyB9KTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IHVwbG9hZFBsYWNlSW1hZ2UgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfaWQgPSByZXEucGFyYW1zLl9pZDtcclxuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgUGxhY2VzLmZpbmRCeUlkKHBsYWNlX2lkKTtcclxuXHJcbiAgICAgICAgbGV0IGltYWdlVXJsO1xyXG4gICAgICAgIGlmIChyZXEuZmlsZSkge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9IGAke3VpZCgpfV9fJHtyZXEuZmlsZS5vcmlnaW5hbG5hbWV9YDtcclxuICAgICAgICAgICAgbGV0IGZpbGVuYW1lID0gYGltYWdlcy9wbGFjZUltYWdlcy8ke2ltYWdlVXJsfWA7XHJcbiAgICAgICAgICAgIGxldCBwcmV2aW91c0ltYWdlUGF0aCA9IGBpbWFnZXMvcGxhY2VJbWFnZXMvJHtwbGFjZS5pbWFnZX1gO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaW1hZ2VFeGlzdCA9IGZzLmV4aXN0c1N5bmMocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICBpZiAoaW1hZ2VFeGlzdCkge1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlSW1hZ2UocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGF3YWl0IHNoYXJwKHJlcS5maWxlLnBhdGgpXHJcbiAgICAgICAgICAgICAgICAucm90YXRlKClcclxuICAgICAgICAgICAgICAgIC5yZXNpemUoNTAwLCA1MDApXHJcbiAgICAgICAgICAgICAgICAudG9GaWxlKGZpbGVuYW1lKTtcclxuXHJcbiAgICAgICAgICAgIGZzLnVubGluayhyZXEuZmlsZS5wYXRoLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaW1hZ2VVcmwgPSAnaW1hZ2UucG5nJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBsYWNlLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgcGxhY2Uuc2F2ZSgpO1xyXG5cclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6ICdTdWNjZXNzZnVsbHkgdXBkYXRlZCBwcm9maWxlIHBpY3R1cmUnIH0pO1xyXG5cclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnRzLlVwbG9hZFVzZXJJbWFnZSA9IFVwbG9hZFVzZXJJbWFnZTtcclxuZXhwb3J0cy51cGxvYWRGaWxlID0gdXBsb2FkRmlsZTsiXX0=\",\"originalCode\":\"const sharp = require('sharp');\\r\\nconst uid = require('uid');\\r\\nconst fs = require('fs');\\r\\nconst Users = require('../models/users');\\r\\nconst Places = require('../models/visitingPlaces')\\r\\n\\r\\nconst uploadFile = async (req, res) => {\\r\\n try {\\r\\n await upload(req, res);\\r\\n\\r\\n if (req.file == undefined) {\\r\\n return res.send(`You must select a file.`);\\r\\n }\\r\\n\\r\\n return res.send(`File has been uploaded.`);\\r\\n } catch (error) {\\r\\n return res.send(`Error when trying upload image: ${error}`);\\r\\n }\\r\\n};\\r\\n\\r\\nconst UploadUserImage = async (req, res, next) => {\\r\\n try {\\r\\n const user_id = req.params._id;\\r\\n const user = await Users.findById(user_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/userImages/${imageUrl}`;\\r\\n let previousImagePath = `images/userImages/${user.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'profile.png';\\r\\n }\\r\\n\\r\\n user.image = imageUrl;\\r\\n await user.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nconst uploadPlaceImage = async (req, res, next) => {\\r\\n try {\\r\\n const place_id = req.params._id;\\r\\n const user = await Places.findById(place_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/placeImages/${imageUrl}`;\\r\\n let previousImagePath = `images/placeImages/${place.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'image.png';\\r\\n }\\r\\n\\r\\n place.image = imageUrl;\\r\\n await place.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nexports.UploadUserImage = UploadUserImage;\\r\\nexports.uploadFile = uploadFile;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/70/upload_70c590d2bd713c9562e3916387ba4116.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\upload.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":12791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":12788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"uploadFile\",\"ranges\":[{\"startOffset\":293,\"endOffset\":580,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"UploadUserImage\",\"ranges\":[{\"startOffset\":607,\"endOffset\":1704,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"uploadPlaceImage\",\"ranges\":[{\"startOffset\":1732,\"endOffset\":2835,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fa/users_fa250a82bd410ffb1909f920e93eed19.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2324\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c4/visitingPlaces_c4ccc91c117df8c4aeada72a82534688.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2335\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Moderater Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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RyxHQUFHLElBQUlRLEtBQUosQ0FBVSxnQ0FBVixDQUFOO0FBQ0FSLElBQUFBLEdBQUcsQ0FBQ1MsTUFBSixHQUFhLEdBQWI7QUFDQSxXQUFPSCxJQUFJLENBQUNOLEdBQUQsQ0FBWDtBQUNIO0FBQ0osQ0FkRCIsInNvdXJjZXNDb250ZW50IjpbInZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBMb2NhbFN0cmF0ZWd5ID0gcmVxdWlyZSgncGFzc3BvcnQtbG9jYWwnKS5TdHJhdGVneTtcclxudmFyIFVzZXIgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciBKd3RTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLlN0cmF0ZWd5O1xyXG52YXIgRXh0cmFjdEp3dCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLkV4dHJhY3RKd3Q7XHJcbnZhciBqd3QgPSByZXF1aXJlKCdqc29ud2VidG9rZW4nKTtcclxuXHJcblxyXG5wYXNzcG9ydC51c2UobmV3IExvY2FsU3RyYXRlZ3koVXNlci5hdXRoZW50aWNhdGUoKSkpO1xyXG5wYXNzcG9ydC5zZXJpYWxpemVVc2VyKFVzZXIuc2VyaWFsaXplVXNlcigpKTtcclxucGFzc3BvcnQuZGVzZXJpYWxpemVVc2VyKFVzZXIuZGVzZXJpYWxpemVVc2VyKCkpO1xyXG5cclxuZXhwb3J0cy5nZXRUb2tlbiA9ICh1c2VyKSA9PiB7XHJcbiAgICByZXR1cm4gand0LnNpZ24odXNlciwgcHJvY2Vzcy5lbnYuc2VjcmV0S2V5LFxyXG4gICAgICAgIHsgZXhwaXJlc0luOiAzNjAwIH0pO1xyXG59O1xyXG5cclxudmFyIG9wdHMgPSB7fTtcclxub3B0cy5qd3RGcm9tUmVxdWVzdCA9IEV4dHJhY3RKd3QuZnJvbUF1dGhIZWFkZXJBc0JlYXJlclRva2VuKCk7XHJcbm9wdHMuc2VjcmV0T3JLZXkgPSBwcm9jZXNzLmVudi5zZWNyZXRLZXk7XHJcblxyXG5leHBvcnRzLmp3dFBhc3Nwb3J0ID0gcGFzc3BvcnQudXNlKG5ldyBKd3RTdHJhdGVneShvcHRzLFxyXG4gICAgKGp3dF9wYXlsb2FkLCBkb25lKSA9PiB7XHJcbiAgICAgICAgVXNlci5maW5kT25lKHsgX2lkOiBqd3RfcGF5bG9hZC5faWQgfSwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShlcnIsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCB1c2VyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkb25lKG51bGwsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSkpO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlVc2VyID0gcGFzc3BvcnQuYXV0aGVudGljYXRlKCdqd3QnLCB7IHNlc3Npb246IGZhbHNlIH0pO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ2FkbWluJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlICE9ICdhZG1pbicpIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ0FkbWluIFZlcmlmaWNhdGlvbiBGYWlsZWQhJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDUwMDtcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnZlcmlmeU1vZGVyYXRlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgIT0gJ3VzZXInKSB7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdNb2RlcmF0ZXIgVmVyaWZpY2F0aW9uIEZhaWxlZCEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNTAwO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuIl19\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Moderater Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/83/authenticate_83ba38785e68b531d6a7c8378dfee9c9.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2336\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8642,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8639,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":12}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":12}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":2},{\"startOffset\":1228,\"endOffset\":1493,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1871,\"count\":5},{\"startOffset\":1601,\"endOffset\":1869,\"count\":0}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4b/validation_4b7a8ff68e044daa8c6daa8312a761dc.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2369\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(newPasswordString, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, function (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating Password'\\n });\\n });\\n};\\n\\nconst logout = (req, res) => {\\n if (req.session) {\\n req.session.destroy();\\n res.clearCookie('session-id');\\n } else {\\n var err = new Error('You are not logged in!');\\n err.status = 403;\\n }\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.logout = logout;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsImZpbmRCeUlkIiwidGhlbiIsInNhbml0aXplZFVzZXIiLCJzZXRQYXNzd29yZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwibWVzc2FnZSIsImxvZ291dCIsInNlc3Npb24iLCJkZXN0cm95IiwiY2xlYXJDb29raWUiLCJFcnJvciIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBckI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBYjs7QUFFQSxJQUFJQyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxpQkFBRCxDQUFuQjs7QUFDQSxJQUFJSSxRQUFRLEdBQUdKLE9BQU8sQ0FBQyxVQUFELENBQXRCOztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUdBLE1BQU1NLFdBQVcsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUNwQyxNQUFJQyxLQUFLLEdBQUc7QUFDUkMsSUFBQUEsUUFBUSxFQUFFSixHQUFHLENBQUNLLElBQUosQ0FBU0MsS0FEWDtBQUVSQyxJQUFBQSxTQUFTLEVBQUVQLEdBQUcsQ0FBQ0ssSUFBSixDQUFTRSxTQUZaO0FBR1JDLElBQUFBLFFBQVEsRUFBRVIsR0FBRyxDQUFDSyxJQUFKLENBQVNHLFFBSFg7QUFJUkYsSUFBQUEsS0FBSyxFQUFFTixHQUFHLENBQUNLLElBQUosQ0FBU0MsS0FKUjtBQUtSRyxJQUFBQSxJQUFJLEVBQUU7QUFMRSxHQUFaO0FBT0FiLEVBQUFBLEtBQUssQ0FBQ2MsUUFBTixDQUFlLElBQUlkLEtBQUosQ0FBVU8sS0FBVixDQUFmLEVBQ0lILEdBQUcsQ0FBQ0ssSUFBSixDQUFTTSxRQURiLEVBQ3VCLENBQUNDLEdBQUQsRUFBTUMsSUFBTixLQUFlO0FBQzlCLFFBQUlELEdBQUosRUFBUztBQUNMWCxNQUFBQSxHQUFHLENBQUNhLFVBQUosR0FBaUIsR0FBakI7QUFDQWIsTUFBQUEsR0FBRyxDQUFDYyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQWQsTUFBQUEsR0FBRyxDQUFDZSxJQUFKLENBQVM7QUFBRUMsUUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JDLFFBQUFBLE1BQU0sRUFBRTtBQUExQixPQUFUO0FBQ0gsS0FKRCxNQUtLO0FBQ0QsVUFBSWxCLEdBQUcsQ0FBQ0ssSUFBSixDQUFTRSxTQUFiLEVBQ0lNLElBQUksQ0FBQ04sU0FBTCxHQUFpQlAsR0FBRyxDQUFDSyxJQUFKLENBQVNFLFNBQTFCO0FBQ0osVUFBSVAsR0FBRyxDQUFDSyxJQUFKLENBQVNHLFFBQWIsRUFDSUssSUFBSSxDQUFDTCxRQUFMLEdBQWdCUixHQUFHLENBQUNLLElBQUosQ0FBU0csUUFBekI7QUFDSkssTUFBQUEsSUFBSSxDQUFDTSxJQUFMLENBQVUsQ0FBQ1AsR0FBRCxFQUFNQyxJQUFOLEtBQWU7QUFDckJaLFFBQUFBLEdBQUcsQ0FBQ2EsVUFBSixHQUFpQixHQUFqQjtBQUNBYixRQUFBQSxHQUFHLENBQUNjLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBZCxRQUFBQSxHQUFHLENBQUNlLElBQUosQ0FBUztBQUFFQyxVQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQkMsVUFBQUEsTUFBTSxFQUFFO0FBQXpCLFNBQVQ7QUFDSCxPQUpEO0FBS0g7QUFDSixHQWxCTDtBQW1CSCxDQTNCRDs7QUE2QkEsTUFBTUUsS0FBSyxHQUFHLENBQUNwQixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUM5QkwsRUFBQUEsUUFBUSxDQUFDQyxZQUFULENBQXNCLE9BQXRCLEVBQStCLENBQUNjLEdBQUQsRUFBTUMsSUFBTixFQUFZUSxJQUFaLEtBQXFCO0FBRWhELFFBQUksQ0FBQ1IsSUFBTCxFQUFXO0FBQ1BaLE1BQUFBLEdBQUcsQ0FBQ2EsVUFBSixHQUFpQixHQUFqQjtBQUNBYixNQUFBQSxHQUFHLENBQUNjLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBZCxNQUFBQSxHQUFHLENBQUNlLElBQUosQ0FBUztBQUFFQyxRQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkMsUUFBQUEsTUFBTSxFQUFFLHFCQUExQjtBQUFpRE4sUUFBQUEsR0FBRyxFQUFFUztBQUF0RCxPQUFUO0FBQ0EsYUFBT25CLElBQUksQ0FBQ1UsR0FBRCxDQUFYO0FBQ0g7O0FBQ0RaLElBQUFBLEdBQUcsQ0FBQ3NCLEtBQUosQ0FBVVQsSUFBVixFQUFpQkQsR0FBRCxJQUFTO0FBQ3JCLFVBQUlXLEtBQUssR0FBR3pCLFlBQVksQ0FBQzBCLFFBQWIsQ0FBc0I7QUFBRUMsUUFBQUEsR0FBRyxFQUFFekIsR0FBRyxDQUFDYSxJQUFKLENBQVNZLEdBQWhCO0FBQXFCaEIsUUFBQUEsSUFBSSxFQUFFSSxJQUFJLENBQUNKO0FBQWhDLE9BQXRCLENBQVo7QUFDQVIsTUFBQUEsR0FBRyxDQUFDYSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FiLE1BQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLE1BQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLFFBQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCQyxRQUFBQSxNQUFNLEVBQUUsbUJBQXpCO0FBQThDSyxRQUFBQSxLQUFLLEVBQUVBO0FBQXJELE9BQVQ7QUFDSCxLQUxEO0FBTUgsR0FkRCxFQWNHdkIsR0FkSCxFQWNRQyxHQWRSLEVBY2FDLElBZGI7QUFlSCxDQWhCRDs7QUFrQkEsTUFBTXdCLGVBQWUsR0FBRyxDQUFDMUIsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDeEMsTUFBSXlCLE1BQU0sR0FBRzNCLEdBQUcsQ0FBQzRCLE1BQUosQ0FBV0MsRUFBeEI7QUFDQWpDLEVBQUFBLEtBQUssQ0FBQ2tDLFFBQU4sQ0FBZUgsTUFBZixFQUF1QkksSUFBdkIsQ0FBNEIsVUFBVUMsYUFBVixFQUF5QjtBQUNqRCxRQUFJQSxhQUFKLEVBQW1CO0FBQ2ZBLE1BQUFBLGFBQWEsQ0FBQ0MsV0FBZCxDQUEwQkMsaUJBQTFCLEVBQTZDLFlBQVk7QUFDckRGLFFBQUFBLGFBQWEsQ0FBQ2IsSUFBZDtBQUNBbEIsUUFBQUEsR0FBRyxDQUFDYSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FiLFFBQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLFFBQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLFVBQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCa0IsVUFBQUEsT0FBTyxFQUFFO0FBQTFCLFNBQVQ7QUFDSCxPQUxEO0FBTUgsS0FQRCxNQU9PO0FBQ0hsQyxNQUFBQSxHQUFHLENBQUNhLFVBQUosR0FBaUIsR0FBakI7QUFDQWIsTUFBQUEsR0FBRyxDQUFDYyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQWQsTUFBQUEsR0FBRyxDQUFDZSxJQUFKLENBQVM7QUFBRUMsUUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JrQixRQUFBQSxPQUFPLEVBQUU7QUFBM0IsT0FBVDtBQUNIO0FBQ0osR0FiRCxFQWFHLFVBQVV2QixHQUFWLEVBQWU7QUFDZFgsSUFBQUEsR0FBRyxDQUFDYSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FiLElBQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLElBQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCa0IsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQWpCRDtBQWtCSCxDQXBCRDs7QUFzQkEsTUFBTUMsTUFBTSxHQUFHLENBQUNwQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUN6QixNQUFJRCxHQUFHLENBQUNxQyxPQUFSLEVBQWlCO0FBQ2JyQyxJQUFBQSxHQUFHLENBQUNxQyxPQUFKLENBQVlDLE9BQVo7QUFDQXJDLElBQUFBLEdBQUcsQ0FBQ3NDLFdBQUosQ0FBZ0IsWUFBaEI7QUFDSCxHQUhELE1BSUs7QUFDRCxRQUFJM0IsR0FBRyxHQUFHLElBQUk0QixLQUFKLENBQVUsd0JBQVYsQ0FBVjtBQUNBNUIsSUFBQUEsR0FBRyxDQUFDTSxNQUFKLEdBQWEsR0FBYjtBQUNIO0FBQ0osQ0FURDs7QUFXQXVCLE9BQU8sQ0FBQzFDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0EwQyxPQUFPLENBQUNyQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBcUIsT0FBTyxDQUFDTCxNQUFSLEdBQWlCQSxNQUFqQjtBQUNBSyxPQUFPLENBQUNmLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbnZhciByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxudmFyIFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG5cclxuXHJcbmNvbnN0IHNpZ251cEFkbWluID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgYWRtaW4gPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIGZpcnN0bmFtZTogcmVxLmJvZHkuZmlyc3RuYW1lLFxyXG4gICAgICAgIGxhc3RuYW1lOiByZXEuYm9keS5sYXN0bmFtZSxcclxuICAgICAgICBlbWFpbDogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgcm9sZTogJ2FkbWluJ1xyXG4gICAgfVxyXG4gICAgVXNlcnMucmVnaXN0ZXIobmV3IFVzZXJzKGFkbWluKSxcclxuICAgICAgICByZXEuYm9keS5wYXNzd29yZCwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gVW5zdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVxLmJvZHkuZmlyc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIuZmlyc3RuYW1lID0gcmVxLmJvZHkuZmlyc3RuYW1lO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5Lmxhc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIubGFzdG5hbWUgPSByZXEuYm9keS5sYXN0bmFtZTtcclxuICAgICAgICAgICAgICAgIHVzZXIuc2F2ZSgoZXJyLCB1c2VyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHN0YXR1czogJ1JlZ2lzdHJhdGlvbiBTdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dpbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgcGFzc3BvcnQuYXV0aGVudGljYXRlKCdsb2NhbCcsIChlcnIsIHVzZXIsIGluZm8pID0+IHtcclxuXHJcbiAgICAgICAgaWYgKCF1c2VyKSB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAxO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdMb2dpbiBVbnN1Y2Nlc3NmdWwhJywgZXJyOiBpbmZvIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXEubG9nSW4odXNlciwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB2YXIgdG9rZW4gPSBhdXRoZW50aWNhdGUuZ2V0VG9rZW4oeyBfaWQ6IHJlcS51c2VyLl9pZCwgcm9sZTogdXNlci5yb2xlIH0pO1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdMb2dpbiBTdWNjZXNzZnVsIScsIHRva2VuOiB0b2tlbiwgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KShyZXEsIHJlcywgbmV4dCk7XHJcbn1cclxuXHJcbmNvbnN0IGNoYW5nZVBhc3Nvd29yZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHVzZXJJZCA9IHJlcS5wYXJhbXMuaWQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKG5ld1Bhc3N3b3JkU3RyaW5nLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ3Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgZnVuY3Rpb24gKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIFBhc3N3b3JkJyB9KTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dvdXQgPSAocmVxLCByZXMpID0+IHtcclxuICAgIGlmIChyZXEuc2Vzc2lvbikge1xyXG4gICAgICAgIHJlcS5zZXNzaW9uLmRlc3Ryb3koKTtcclxuICAgICAgICByZXMuY2xlYXJDb29raWUoJ3Nlc3Npb24taWQnKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGxvZ2dlZCBpbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5sb2dvdXQgPSBsb2dvdXQ7XHJcbmV4cG9ydHMuY2hhbmdlUGFzc293b3JkID0gY2hhbmdlUGFzc293b3JkOyJdfQ==\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(newPasswordString, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, function (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating Password' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst logout = (req, res) => {\\r\\n if (req.session) {\\r\\n req.session.destroy();\\r\\n res.clearCookie('session-id');\\r\\n }\\r\\n else {\\r\\n var err = new Error('You are not logged in!');\\r\\n err.status = 403;\\r\\n }\\r\\n}\\r\\n\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.logout = logout;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1b/userController_1b7f9872a721ffd88b6634cf95f37bee.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2370\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13343,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13340,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2707,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"logout\",\"ranges\":[{\"startOffset\":2725,\"endOffset\":2913,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/cors_34beef0e65d7cfb3f2bb7a05fb9de802.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2371\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":17}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/3b/employeeRouter_3bb83cd3174a28ed34e0f44c133b9b42.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2372\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n throw err;\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n throw err;\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while deletting.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsImZpcnN0bmFtZSIsIiRyZWdleCIsIiRvcHRpb25zIiwic29ydGJ5Iiwic29ydEJ5Iiwic29ydCIsImFkZEVtcGxveWVlIiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJlbXBsb3llZSIsInVzZXJuYW1lIiwiZW1haWwiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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QUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFRixHQUFHLENBQUNFO0FBQS9CLEtBQVQ7QUFDSCxHQVhMO0FBWUgsQ0FiRDs7QUFlQTJCLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNLLHlCQUFSLEdBQW9DQSx5QkFBcEM7QUFDQUwsT0FBTyxDQUFDUyxtQkFBUixHQUE4QkEsbUJBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRW1wbG95ZWVzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMvdXRpbHMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBnZXQgZGV0YWlscyBvZiB0aGUgYXNzaXN0YW50c1xyXG4gKiBAcGFyYW0geyp9IHJlcSBcclxuICogQHBhcmFtIHsqfSByZXMgXHJcbiAqIEBwYXJhbSB7Kn0gbmV4dCBcclxuICogQHJldHVybnMge2FycmF5fSBsaXN0IG9mIGVtcGxveWVlc1xyXG4gKi9cclxuY29uc3QgZ2V0QWxsRW1wbG95ZWVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH07XHJcbiAgICBFbXBsb3llZXMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbEVtcGxveWVlc0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9O1xyXG4gICAgLy8gaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgLy8gICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgLy8gICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9XHJcbiAgICAvLyB9XHJcbiAgICBpZiAocmVxLmJvZHkuc2ltaWxhclRvKSB7XHJcbiAgICAgICAgdmFyIHNlYXJjaEJ5ID0gcmVxLmJvZHkuc2ltaWxhclRvIHx8IHt9XHJcbiAgICAgICAgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiLCBmaXJzdG5hbWU6IHsgJHJlZ2V4OiBgJHtzZWFyY2hCeX1gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgRW1wbG95ZWVzLmZpbmQocXVlcnkpLnNvcnQoc29ydGJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZ2V0dGluZyBkYXRhJyB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGVtcGxveWVlLnNhdmUoKGVyciwgZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtYWlsOiBlbXBsb3llZS5lbWFpbCwgcGFzc3dvcmQ6IHJhbmRvbVBhc3N3b3JkIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIEVtcGxveWVlcy5yZW1vdmUoeyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzID0gZ2V0QWxsRW1wbG95ZWVzO1xyXG5leHBvcnRzLmdldEFsbEVtcGxveWVlc0J5TmFtZSA9IGdldEFsbEVtcGxveWVlc0J5TmFtZTtcclxuZXhwb3J0cy5hZGRFbXBsb3llZSA9IGFkZEVtcGxveWVlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbEVtcGxveWVlcyA9IGRlbGV0ZUFsbEVtcGxveWVlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigoZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWU6IGVtcGxveWVlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGVtcGxveWVlID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdtb2RlcmF0ZXInXHJcbiAgICB9XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5lbXBsb3llZUlkLCB7XHJcbiAgICAgICAgJHNldDogZW1wbG95ZWVcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlOiBlbXBsb3llZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHVwZGF0aW5nLlwiKTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBRW1wbG95ZWVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIGRlbGV0dGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRFbXBsb3llZURldGFpbHNCeUlkID0gZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVFbXBsb3llZURldGFpbHNCeUlkID0gdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBRW1wbG95ZWVCeUlkID0gZGVsZXRlQUVtcGxveWVlQnlJZDsiXX0=\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while deletting.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4c/employeeController_4c102fe7873f734bd5117d404757cd9d.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2373\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22614,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22611,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":1053,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":1086,\"endOffset\":1976,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1999,\"endOffset\":2993,\"count\":1},{\"startOffset\":2757,\"endOffset\":2991,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2326,\"endOffset\":2750,\"count\":1},{\"startOffset\":2362,\"endOffset\":2390,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2420,\"endOffset\":2734,\"count\":1},{\"startOffset\":2460,\"endOffset\":2496,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3023,\"endOffset\":3260,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3709,\"endOffset\":3993,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4030,\"endOffset\":4740,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4771,\"endOffset\":5211,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const multer = require('multer');\\n\\nconst {\\n v4: uuidv4\\n} = require('uuid');\\n\\nlet path = require('path');\\n\\nconst storage = multer.diskStorage({\\n destination: function (req, file, cb) {\\n cb(null, 'images');\\n },\\n filename: function (req, file, cb) {\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\n }\\n});\\n\\nconst fileFilter = (req, file, cb) => {\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\n\\n if (allowedFileTypes.includes(file.mimetype)) {\\n cb(null, true);\\n } else {\\n cb(null, false);\\n }\\n};\\n\\nlet upload = multer({\\n storage,\\n fileFilter\\n});\\nexports.upload = upload;\\n\\nconst password_generator = len => {\\n var length = len ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbIm11bHRlciIsInJlcXVpcmUiLCJ2NCIsInV1aWR2NCIsInBhdGgiLCJzdG9yYWdlIiwiZGlza1N0b3JhZ2UiLCJkZXN0aW5hdGlvbiIsInJlcSIsImZpbGUiLCJjYiIsImZpbGVuYW1lIiwiRGF0ZSIsIm5vdyIsImV4dG5hbWUiLCJvcmlnaW5hbG5hbWUiLCJmaWxlRmlsdGVyIiwiYWxsb3dlZEZpbGVUeXBlcyIsImluY2x1ZGVzIiwibWltZXR5cGUiLCJ1cGxvYWQiLCJleHBvcnRzIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwibGVuIiwibGVuZ3RoIiwic3RyaW5nIiwibnVtZXJpYyIsInB1bmN0dWF0aW9uIiwicGFzc3dvcmQiLCJjaGFyYWN0ZXIiLCJjcnVuY2giLCJlbnRpdHkxIiwiTWF0aCIsImNlaWwiLCJyYW5kb20iLCJlbnRpdHkyIiwiZW50aXR5MyIsImhvbGQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNwbGl0Iiwic29ydCIsImpvaW4iLCJzdWJzdHIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxFQUFFLEVBQUVDO0FBQU4sSUFBaUJGLE9BQU8sQ0FBQyxNQUFELENBQTlCOztBQUNBLElBQUlHLElBQUksR0FBR0gsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBQ0EsTUFBTUksT0FBTyxHQUFHTCxNQUFNLENBQUNNLFdBQVAsQ0FBbUI7QUFDL0JDLEVBQUFBLFdBQVcsRUFBRSxVQUFVQyxHQUFWLEVBQWVDLElBQWYsRUFBcUJDLEVBQXJCLEVBQXlCO0FBQ2xDQSxJQUFBQSxFQUFFLENBQUMsSUFBRCxFQUFPLFFBQVAsQ0FBRjtBQUNILEdBSDhCO0FBSS9CQyxFQUFBQSxRQUFRLEVBQUUsVUFBVUgsR0FBVixFQUFlQyxJQUFmLEVBQXFCQyxFQUFyQixFQUF5QjtBQUMvQkEsSUFBQUEsRUFBRSxDQUFDLElBQUQs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LGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtdWx0ZXIgPSByZXF1aXJlKCdtdWx0ZXInKTtcclxuY29uc3QgeyB2NDogdXVpZHY0IH0gPSByZXF1aXJlKCd1dWlkJyk7XHJcbmxldCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xyXG5jb25zdCBzdG9yYWdlID0gbXVsdGVyLmRpc2tTdG9yYWdlKHtcclxuICAgIGRlc3RpbmF0aW9uOiBmdW5jdGlvbiAocmVxLCBmaWxlLCBjYikge1xyXG4gICAgICAgIGNiKG51bGwsICdpbWFnZXMnKTtcclxuICAgIH0sXHJcbiAgICBmaWxlbmFtZTogZnVuY3Rpb24gKHJlcSwgZmlsZSwgY2IpIHtcclxuICAgICAgICBjYihudWxsLCB1dWlkdjQoKSArICctJyArIERhdGUubm93KCkgKyBwYXRoLmV4dG5hbWUoZmlsZS5vcmlnaW5hbG5hbWUpKTtcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBmaWxlRmlsdGVyID0gKHJlcSwgZmlsZSwgY2IpID0+IHtcclxuICAgIGNvbnN0IGFsbG93ZWRGaWxlVHlwZXMgPSBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL3BuZyddO1xyXG4gICAgaWYgKGFsbG93ZWRGaWxlVHlwZXMuaW5jbHVkZXMoZmlsZS5taW1ldHlwZSkpIHtcclxuICAgICAgICBjYihudWxsLCB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2IobnVsbCwgZmFsc2UpO1xyXG4gICAgfVxyXG59XHJcblxyXG5sZXQgdXBsb2FkID0gbXVsdGVyKHsgc3RvcmFnZSwgZmlsZUZpbHRlciB9KTtcclxuXHJcbmV4cG9ydHMudXBsb2FkID0gdXBsb2FkO1xyXG5cclxuY29uc3QgcGFzc3dvcmRfZ2VuZXJhdG9yID0gKGxlbikgPT4ge1xyXG4gICAgdmFyIGxlbmd0aCA9IChsZW4pID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfH17W11cXDo7Pz48LC4vLT0nO1xyXG4gICAgdmFyIHBhc3N3b3JkID0gXCJcIjtcclxuICAgIHZhciBjaGFyYWN0ZXIgPSBcIlwiO1xyXG4gICAgdmFyIGNydW5jaCA9IHRydWU7XHJcbiAgICB3aGlsZSAocGFzc3dvcmQubGVuZ3RoIDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgZW50aXR5MSA9IE1hdGguY2VpbChzdHJpbmcubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTIgPSBNYXRoLmNlaWwobnVtZXJpYy5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgZW50aXR5MyA9IE1hdGguY2VpbChwdW5jdHVhdGlvbi5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgaG9sZCA9IHN0cmluZy5jaGFyQXQoZW50aXR5MSk7XHJcbiAgICAgICAgaG9sZCA9IChwYXNzd29yZC5sZW5ndGggJSAyID09IDApID8gKGhvbGQudG9VcHBlckNhc2UoKSkgOiAoaG9sZCk7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IGhvbGQ7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IG51bWVyaWMuY2hhckF0KGVudGl0eTIpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBwdW5jdHVhdGlvbi5jaGFyQXQoZW50aXR5Myk7XHJcbiAgICAgICAgcGFzc3dvcmQgPSBjaGFyYWN0ZXI7XHJcbiAgICB9XHJcbiAgICBwYXNzd29yZCA9IHBhc3N3b3JkLnNwbGl0KCcnKS5zb3J0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAuNSAtIE1hdGgucmFuZG9tKCkgfSkuam9pbignJyk7XHJcbiAgICByZXR1cm4gcGFzc3dvcmQuc3Vic3RyKDAsIGxlbmd0aCk7XHJcbn1cclxuXHJcbmV4cG9ydHMucGFzc3dvcmRfZ2VuZXJhdG9yID0gcGFzc3dvcmRfZ2VuZXJhdG9yOyJdfQ==\",\"originalCode\":\"const multer = require('multer');\\r\\nconst { v4: uuidv4 } = require('uuid');\\r\\nlet path = require('path');\\r\\nconst storage = multer.diskStorage({\\r\\n destination: function (req, file, cb) {\\r\\n cb(null, 'images');\\r\\n },\\r\\n filename: function (req, file, cb) {\\r\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\r\\n }\\r\\n});\\r\\n\\r\\nconst fileFilter = (req, file, cb) => {\\r\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\r\\n if (allowedFileTypes.includes(file.mimetype)) {\\r\\n cb(null, true);\\r\\n } else {\\r\\n cb(null, false);\\r\\n }\\r\\n}\\r\\n\\r\\nlet upload = multer({ storage, fileFilter });\\r\\n\\r\\nexports.upload = upload;\\r\\n\\r\\nconst password_generator = (len) => {\\r\\n var length = (len) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/f3/utils_f37ac8376b54b6ced952605900298d07.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2374\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":7861,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":7858,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"destination\",\"ranges\":[{\"startOffset\":248,\"endOffset\":302,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"filename\",\"ranges\":[{\"startOffset\":316,\"endOffset\":423,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"fileFilter\",\"ranges\":[{\"startOffset\":448,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":752,\"endOffset\":1636,\"count\":6},{\"startOffset\":786,\"endOffset\":790,\"count\":0},{\"startOffset\":1034,\"endOffset\":1498,\"count\":24},{\"startOffset\":1329,\"endOffset\":1349,\"count\":12},{\"startOffset\":1350,\"endOffset\":1356,\"count\":12}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1537,\"endOffset\":1586,\"count\":173}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9d/placeRouter_9d9aca2c41f2c1b6283bdacdd67537b2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2415\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/ee/placeController_ee3a20e34d4d356553af723b6f7f6a6e.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2416\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwidmVyaWZ5TW9kZXJhdGVyIiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNB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T0FBUCxHQUFpQjlCLGNBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHNjaGVkdWxlQ29udHJvbGxlciA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3NjaGVkdWxlQ29udHJvbGxlcicpXHJcblxyXG5jb25zdCBzY2hlZHVsZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgUm91dGVzXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnLycpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeU1vZGVyYXRlciwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlQWxsU2NoZWR1bGVzKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBSb3V0ZXMgT24gSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvOnNjaGVkdWxlSWQnKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgc2NoZWR1bGVDb250cm9sbGVyLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvc2NoZWR1bGVzLycgKyByZXEucGFyYW1zLnNjaGVkdWxlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIudXBkYXRlU2NoZWR1bGVCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgc2NoZWR1bGVDb250cm9sbGVyLmRlbGV0ZVNjaGVkdWxlQnlJZCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnL3VzZXIvOnVzZXJJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAgc2NoZWR1bGVDb250cm9sbGVyLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gc2NoZWR1bGVSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9b/scheduleRouter_9b57edc7078385d142c957dea9d9e0be.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2417\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9621,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9618,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1085,\"endOffset\":1188,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1621,\"endOffset\":1661,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1824,\"endOffset\":1953,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2288,\"endOffset\":2328,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to add a schedule\\\"\\n });\\n });\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Update failed\\\"\\n });\\n });\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Delete failed\\\"\\n });\\n });\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwibXNnIiwiX21lc3NhZ2UiLCJhZGRTY2hlZHVsZSIsInNjaGVkdWxlIiwidXNlciIsImJvZHkiLCJwbGFjZSIsImRhdGUiLCJzdGF0ZSIsInRyYXZlbGxpbmdNZXRob2QiLCJjcmVhdGUiLCJkZWxldGVBbGxTY2hlZHVsZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInNjaGVkdWxlSWQiLCJ1cGRhdGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxxQkFBRCxDQUF6QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3hDTCxFQUFBQSxTQUFTLENBQUNNLElBQVYsQ0FBZUgsR0FBRyxDQUFDSSxLQUFuQixFQUEwQkMsUUFBMUIsQ0FBbUMsT0FBbkMsRUFBNENBLFFBQTVDLENBQXFELE1BQXJELEVBQ0tDLElBREwsQ0FDV0MsU0FBRCxJQUFlO0FBQ2pCTixJQUFBQSxHQUFHLENBQUNPLFVBQUosR0FBaUIs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Q1cwQixJQUFELElBQVU7QUFDWi9CLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQmdDLE1BQUFBLFFBQVEsRUFBQ1g7QUFBMUIsS0FBVDtBQUNILEdBTEwsRUFLUXBCLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTO0FBQ1pYLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQVZMO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gZ2V0IGRhdGFcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJ1c2VyXCI6IFN0cmluZyhyZXEucGFyYW1zLnVzZXJJZCkgfTtcclxuICAgIFNjaGVkdWxlcy5maW5kKHF1ZXJ5KS5wb3B1bGF0ZShcInBsYWNlXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+ICB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICBjb25zdCBtc2cgPSBlcnIuX21lc3NhZ2U7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IG1zZyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkZhaWxlZCB0byBnZXQgZGF0YVwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBhZGRTY2hlZHVsZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHNjaGVkdWxlID0ge1xyXG4gICAgICAgIHVzZXI6IHJlcS5ib2R5LnVzZXIsXHJcbiAgICAgICAgcGxhY2U6IHJlcS5ib2R5LnBsYWNlLFxyXG4gICAgICAgIGRhdGU6IHJlcS5ib2R5LmRhdGUsXHJcbiAgICAgICAgc3RhdGU6IFwibmV3XCIsXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZDogcmVxLmJvZHkudHJhdmVsbGluZ01ldGhvZFxyXG4gICAgfVxyXG4gICAgU2NoZWR1bGVzLmNyZWF0ZShzY2hlZHVsZSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6c2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgY29uc3QgbXNnID0gZXJyLl9tZXNzYWdlO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBtc2cgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gYWRkIGEgc2NoZWR1bGVcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzID0gZ2V0QWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmFkZFNjaGVkdWxlID0gYWRkU2NoZWR1bGU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsU2NoZWR1bGVzID0gZGVsZXRlQWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyID0gZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXI7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlOnNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBwbGFjZVwiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgU2NoZWR1bGVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuc2NoZWR1bGVJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTpzY2hlZHVsZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiVXBkYXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6cmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiRGVsZXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnRzLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSBnZXRTY2hlZHVsZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVNjaGVkdWxlQnlJZCA9IHVwZGF0ZVNjaGVkdWxlQnlJZDtcclxuZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5SWQgPSBkZWxldGVTY2hlZHVsZUJ5SWQ7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgVXNlcklEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vLyBjb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4vLyAgICAgU2NoZWR1bGVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuc2NoZWR1bGVJZClcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuLy8gICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4vLyAgICAgfSwgeyBuZXc6IHRydWUgfSlcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IGRlbGV0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4vLyAgICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuLy8gICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxuLy8gfSJdfQ==\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to add a schedule\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Update failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response:resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Delete failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1e/scheduleController_1ed35fc0c47927fadcf3cf43433b4df6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2542\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":846,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":881,\"endOffset\":1554,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1577,\"endOffset\":2348,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2378,\"endOffset\":2588,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":3041,\"endOffset\":3489,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3519,\"endOffset\":4012,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":4042,\"endOffset\":4480,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/e2/schedules_e2f8e79bc28961f4db3736c92d490e47.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2543\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0a/touristRouter_0ad938586662daadc81c6cb1ad2e0f53.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2545\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var error = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while deleting data'\\n });\\n });\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJtZXNzYWdlIiwiZ2V0QWxsVG91cmlzdHNCeU5hbWUiLCJib2R5Iiwic2ltaWxhclRvIiwic2VhcmNoQnkiLCIkdGV4dCIsIiRzZWFyY2giLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkVG91cmlzdCIsInJhbmRvbVBhc3N3b3JkIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwidG91cmlzdCIsInVzZXJuYW1lIiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsIm1vYmlsZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxUb3VyaXN0cyIsInJlbW92ZSIsInJlc3AiLCJyZXNwb25zZSIsImV4cG9ydHMiLCJnZXRUb3VyaXN0RGV0YWlsc0J5SWQiLCJ0b3VyaXN0SWQiLCJwYXJhbXMiLCJmaW5kQnlJZCIsInVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCIsImZpbmRCeUlkQW5kVXBkYXRlIiwiJHNldCIsIm5ldyIsImRlbGV0ZUFUb3VyaXN0QnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUUsY0FBYyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLE1BQUlDLEtB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O0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCK0IsTUFBQUEsUUFBUSxFQUFFRDtBQUEzQixLQUFUO0FBQ0gsR0FMTCxFQUtRN0IsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVM7QUFDWlYsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCRyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNILEdBVkw7QUFXSCxDQVpEOztBQWNBNkIsT0FBTyxDQUFDQyxxQkFBUixHQUFnQ0EscUJBQWhDO0FBQ0FELE9BQU8sQ0FBQ0ssd0JBQVIsR0FBbUNBLHdCQUFuQztBQUNBTCxPQUFPLENBQUNTLGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBUb3VyaXN0cyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG5jb25zdCB1dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzL3V0aWxzJyk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsVG91cmlzdHMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiIH07XHJcbiAgICAvLyB2YXIgb2JqID0gT2JqZWN0LmFzc2lnbihxdWVyeSwgeyAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH0pO1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgfVxyXG5cclxuICAgIHZhciBzb3J0YnkgPSByZXEuYm9keS5zb3J0QnkgfHwge307XHJcbiAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHRvdXJpc3RJZCA9IHJlcS5wYXJhbXMudG91cmlzdElkO1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWQodG91cmlzdElkKVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTsgXHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgXHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnRvdXJpc3RJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gIHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6ICdDb3VsZCBub3QgZmluZCB0b3VyaXN0IHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFUb3VyaXN0QnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy50b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZGVsZXRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcbiJdfQ==\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var error = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while deleting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9e/touristController_9ee6bfceb00c4d02fdcd8e12f129a687.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2546\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23082,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23079,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":954,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":577,\"endOffset\":744,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":746,\"endOffset\":762,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":770,\"endOffset\":950,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":986,\"endOffset\":1675,\"count\":3},{\"startOffset\":1075,\"endOffset\":1217,\"count\":1},{\"startOffset\":1115,\"endOffset\":1120,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1298,\"endOffset\":1465,\"count\":3}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1467,\"endOffset\":1483,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1491,\"endOffset\":1671,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1697,\"endOffset\":3064,\"count\":5},{\"startOffset\":2826,\"endOffset\":3062,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2044,\"endOffset\":2819,\"count\":5},{\"startOffset\":2079,\"endOffset\":2265,\"count\":3},{\"startOffset\":2265,\"endOffset\":2813,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2294,\"endOffset\":2803,\"count\":2},{\"startOffset\":2333,\"endOffset\":2566,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":3093,\"endOffset\":3369,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3164,\"endOffset\":3323,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3325,\"endOffset\":3341,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3349,\"endOffset\":3365,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3808,\"endOffset\":4292,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":4328,\"endOffset\":4839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4869,\"endOffset\":5317,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/07/dashboardRouter_0791a49f2f45fc0f57ade98f27175c5c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2547\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/dashboardController_34872bbac017cfae6fcc33926d204118.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2548\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const app = require('../../app');\\n\\nconst server = require(\\\"supertest\\\")(app);\\n\\nconst jwt_decode = require('jwt-decode');\\n\\nconst Users = require('../../models/users');\\n\\nvar userToken;\\nvar assistantToken;\\nvar adminToken;\\nconst admin = {\\n \\\"firstname\\\": \\\"Admin\\\",\\n \\\"lastname\\\": \\\"Admin\\\",\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\n \\\"password\\\": \\\"admin-password\\\"\\n};\\nconst assistant = {\\n \\\"firstname\\\": \\\"Dinesh\\\",\\n \\\"lastname\\\": \\\"Chandimal\\\",\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\n};\\nconst tourist = {\\n \\\"firstname\\\": \\\"Sunil\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\n};\\n\\nconst signupAdmin = async () => {\\n await Users.deleteMany({});\\n await server.post(\\\"/users/signup/admin\\\").send(admin);\\n};\\n\\nconst getAdminToken = async () => {\\n if (adminToken) {\\n return adminToken;\\n }\\n\\n await signupAdmin();\\n var creds = {\\n username: admin.email,\\n password: admin.password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n adminToken = response.body.token;\\n return adminToken;\\n};\\n\\nconst addAssistant = async () => {\\n if (!adminToken) {\\n await getAdminToken();\\n }\\n\\n const response = await server.post(\\\"/employees\\\").set(\\\"Authorization\\\", `Bearer ${adminToken}`).send(assistant).expect(200);\\n return response.body.password;\\n};\\n\\nconst getAssistantToken = async () => {\\n if (assistantToken) {\\n return assistantToken;\\n }\\n\\n const password = await addAssistant();\\n var creds = {\\n username: assistant.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n assistantToken = response.body.token;\\n return assistantToken;\\n};\\n\\nconst addTourist = async () => {\\n if (!assistantToken) {\\n await getAssistantToken();\\n }\\n\\n const response = await server.post(\\\"/tourists\\\").set(\\\"Authorization\\\", `Bearer ${assistantToken}`).send(tourist).expect(200);\\n return response.body.password;\\n};\\n\\nconst getTouristToken = async () => {\\n if (userToken) {\\n return userToken;\\n }\\n\\n const password = await addTourist();\\n var creds = {\\n username: tourist.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n userToken = response.body.token;\\n return userToken;\\n};\\n\\nconst getExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Namal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\n \\\"mobile\\\": \\\"981114844\\\",\\n \\\"rommnumber\\\": \\\"41\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n return tourist._id.toString();\\n};\\n\\nconst getNonExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Kamal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n await tourist.remove();\\n return tourist._id.toString();\\n};\\n\\nconst decodeToken = token => {\\n var decoded = jwt_decode(token);\\n return decoded;\\n};\\n\\nmodule.exports = {\\n getAdminToken,\\n getAssistantToken,\\n getTouristToken,\\n decodeToken,\\n addTourist,\\n getTouristToken,\\n getExistingId,\\n getNonExistingId\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJfaGVscGVyLmpzIl0sIm5hbWVzIjpbImFwcCIsInJlcXVpcmUiLCJzZXJ2ZXIiLCJqd3RfZGVjb2RlIiwiVXNlcnMiLCJ1c2VyVG9rZW4iLCJhc3Npc3RhbnRUb2tlbiIsImFkbWluVG9rZW4iLCJhZG1pbiIsImFzc2lzdGFudCIsInRvdXJpc3QiLCJzaWdudXBBZG1pbiIsImRlbGV0ZU1hbnkiLCJwb3N0Iiwic2VuZCIsImdldEFkbWluVG9rZW4iLCJjcmVkcyIsInVzZXJuYW1lIiwiZW1haWwiLCJwYXNzd29yZCIsInJlc3BvbnNlIiwiYm9keSIsInRva2VuIiwiYWRkQXNzaXN0YW50Iiwic2V0IiwiZXhwZWN0IiwiZ2V0QXNzaXN0YW50VG9rZW4iLCJhZGRUb3VyaXN0IiwiZ2V0VG91cmlzdFRva2VuIiwiZ2V0RXhpc3RpbmdJZCIsIm5ld1RvdXJpc3QiLCJzYXZlIiwiX2lkIiwidG9TdHJpbmciLCJnZXROb25FeGlzdGluZ0lkIiwicmVtb3ZlIiwiZGVjb2RlVG9rZW4iLCJkZWNvZGVkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsV0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxXQUFELENBQVAsQ0FBcUJELEdBQXJCLENBQWY7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHRixPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNRyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxvQkFBRCxDQUFyQjs7QUFFQSxJQUFJSSxTQUFKO0FBQ0EsSUFBSUMsY0FBSjtBQUNBLElBQUlDLFVBQUo7QUFDQSxNQUFNQyxLQUFLLEdBQUc7QUFDVixlQUFhLE9BREg7QUFFVixjQUFZLE9BRkY7QUFHVixXQUFTLGlCQUhDO0FBSVYsY0FBWTtBQUpGLENBQWQ7QUFNQSxNQUFNQyxTQUFTLEdBQUc7QUFDZCxlQUFhLFFBREM7QUFFZCxjQUFZLFdBRkU7QUFHZCxXQUFTO0FB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QyxFQUFBQSxlQUQvRDtBQUNnRkMsRUFBQUEsYUFEaEY7QUFDK0ZLLEVBQUFBO0FBRC9GLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXBwID0gcmVxdWlyZSgnLi4vLi4vYXBwJyk7XHJcbmNvbnN0IHNlcnZlciA9IHJlcXVpcmUoXCJzdXBlcnRlc3RcIikoYXBwKTtcclxuY29uc3Qgand0X2RlY29kZSA9IHJlcXVpcmUoJ2p3dC1kZWNvZGUnKTtcclxuY29uc3QgVXNlcnMgPSByZXF1aXJlKCcuLi8uLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciB1c2VyVG9rZW47XHJcbnZhciBhc3Npc3RhbnRUb2tlbjtcclxudmFyIGFkbWluVG9rZW47XHJcbmNvbnN0IGFkbWluID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJBZG1pblwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkFkbWluXCIsXHJcbiAgICBcImVtYWlsXCI6IFwiYWRtaW5AZ21haWwuY29tXCIsXHJcbiAgICBcInBhc3N3b3JkXCI6IFwiYWRtaW4tcGFzc3dvcmRcIlxyXG59O1xyXG5jb25zdCBhc3Npc3RhbnQgPSB7XHJcbiAgICBcImZpcnN0bmFtZVwiOiBcIkRpbmVzaFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkNoYW5kaW1hbFwiLFxyXG4gICAgXCJlbWFpbFwiOiBcImRpbmVzaGNoYW5kaW1hbEBnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCB0b3VyaXN0ID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJTdW5pbFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkZlcm5hbWRvXCIsXHJcbiAgICBcImVtYWlsXCI6IFwic3VuaWxGZXJuYW1kb0BnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCBzaWdudXBBZG1pbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGF3YWl0IFVzZXJzLmRlbGV0ZU1hbnkoe30pO1xyXG4gICAgYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvdXNlcnMvc2lnbnVwL2FkbWluXCIpXHJcbiAgICAgICAgLnNlbmQoYWRtaW4pO1xyXG59O1xyXG5cclxuY29uc3QgZ2V0QWRtaW5Ub2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhZG1pblRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbiAgICB9XHJcbiAgICBhd2FpdCBzaWdudXBBZG1pbigpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiBhZG1pbi5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogYWRtaW4ucGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFkbWluVG9rZW4gPSByZXNwb25zZS5ib2R5LnRva2VuO1xyXG4gICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGFkZEFzc2lzdGFudCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYWRtaW5Ub2tlbikge1xyXG4gICAgICAgIGF3YWl0IGdldEFkbWluVG9rZW4oKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvZW1wbG95ZWVzXCIpXHJcbiAgICAgICAgLnNldChcIkF1dGhvcml6YXRpb25cIiwgYEJlYXJlciAke2FkbWluVG9rZW59YClcclxuICAgICAgICAuc2VuZChhc3Npc3RhbnQpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRBc3Npc3RhbnRUb2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhc3Npc3RhbnRUb2tlbikge1xyXG4gICAgICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkQXNzaXN0YW50KCk7XHJcbiAgICB2YXIgY3JlZHMgPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IGFzc2lzdGFudC5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogcGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFzc2lzdGFudFRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxufVxyXG5cclxuY29uc3QgYWRkVG91cmlzdCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYXNzaXN0YW50VG9rZW4pIHtcclxuICAgICAgICBhd2FpdCBnZXRBc3Npc3RhbnRUb2tlbigpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi90b3VyaXN0c1wiKVxyXG4gICAgICAgIC5zZXQoXCJBdXRob3JpemF0aW9uXCIsIGBCZWFyZXIgJHthc3Npc3RhbnRUb2tlbn1gKVxyXG4gICAgICAgIC5zZW5kKHRvdXJpc3QpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRUb3VyaXN0VG9rZW4gPSBhc3luYyAoKSA9PiB7XHJcbiAgICBpZiAodXNlclRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIHVzZXJUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkVG91cmlzdCgpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiB0b3VyaXN0LmVtYWlsLFxyXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlcnZlclxyXG4gICAgICAgIC5wb3N0KFwiL3VzZXJzL2xvZ2luXCIpXHJcbiAgICAgICAgLnNlbmQoY3JlZHMpO1xyXG4gICAgdXNlclRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiB1c2VyVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGdldEV4aXN0aW5nSWQgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBuZXdUb3VyaXN0ID0ge1xyXG4gICAgICAgIFwiZmlyc3RuYW1lXCI6IFwiTmFtYWxcIixcclxuICAgICAgICBcImxhc3RuYW1lXCI6IFwiRmVybmFtZG9cIixcclxuICAgICAgICBcImVtYWlsXCI6IFwibmFtYWxmZXJuYW1kb0BnbWFpbC5jb21cIixcclxuICAgICAgICBcIm1vYmlsZVwiOiBcIjk4MTExNDg0NFwiLFxyXG4gICAgICAgIFwicm9tbW51bWJlclwiIDogXCI0MVwiLFxyXG5cclxuICAgIH1cclxuICAgIGNvbnN0IHRvdXJpc3QgPSBuZXcgVXNlcnMobmV3VG91cmlzdCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnNhdmUoKTtcclxuXHJcbiAgICByZXR1cm4gdG91cmlzdC5faWQudG9TdHJpbmcoKTtcclxuXHJcbiAgICBcclxufVxyXG5cclxuY29uc3QgZ2V0Tm9uRXhpc3RpbmdJZCA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1RvdXJpc3QgPSB7XHJcbiAgICAgICAgXCJmaXJzdG5hbWVcIjogXCJLYW1hbFwiLFxyXG4gICAgICAgIFwibGFzdG5hbWVcIjogXCJGZXJuYW1kb1wiLFxyXG4gICAgICAgIFwiZW1haWxcIjogXCJrYW1hbGZlcm5hbWRvQGdtYWlsLmNvbVwiXHJcbiAgICB9XHJcbiAgICBjb25zdCB0b3VyaXN0ID0gbmV3IFVzZXJzKG5ld1RvdXJpc3QpO1xyXG4gICAgYXdhaXQgdG91cmlzdC5zYXZlKCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnJlbW92ZSgpO1xyXG5cclxuICAgIHJldHVybiB0b3VyaXN0Ll9pZC50b1N0cmluZygpO1xyXG59XHJcblxyXG5jb25zdCBkZWNvZGVUb2tlbiA9ICh0b2tlbikgPT4ge1xyXG4gICAgdmFyIGRlY29kZWQgPSBqd3RfZGVjb2RlKHRva2VuKTtcclxuICAgIHJldHVybiBkZWNvZGVkO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGdldEFkbWluVG9rZW4sIGdldEFzc2lzdGFudFRva2VuLCBnZXRUb3VyaXN0VG9rZW4sIGRlY29kZVRva2VuLCBhZGRUb3VyaXN0LCBnZXRUb3VyaXN0VG9rZW4gLGdldEV4aXN0aW5nSWQgLGdldE5vbkV4aXN0aW5nSWRcclxufVxyXG4iXX0=\",\"originalCode\":\"const app = require('../../app');\\r\\nconst server = require(\\\"supertest\\\")(app);\\r\\nconst jwt_decode = require('jwt-decode');\\r\\nconst Users = require('../../models/users');\\r\\n\\r\\nvar userToken;\\r\\nvar assistantToken;\\r\\nvar adminToken;\\r\\nconst admin = {\\r\\n \\\"firstname\\\": \\\"Admin\\\",\\r\\n \\\"lastname\\\": \\\"Admin\\\",\\r\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\r\\n \\\"password\\\": \\\"admin-password\\\"\\r\\n};\\r\\nconst assistant = {\\r\\n \\\"firstname\\\": \\\"Dinesh\\\",\\r\\n \\\"lastname\\\": \\\"Chandimal\\\",\\r\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\r\\n};\\r\\nconst tourist = {\\r\\n \\\"firstname\\\": \\\"Sunil\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\r\\n};\\r\\nconst signupAdmin = async () => {\\r\\n await Users.deleteMany({});\\r\\n await server\\r\\n .post(\\\"/users/signup/admin\\\")\\r\\n .send(admin);\\r\\n};\\r\\n\\r\\nconst getAdminToken = async () => {\\r\\n if (adminToken) {\\r\\n return adminToken;\\r\\n }\\r\\n await signupAdmin();\\r\\n var creds = {\\r\\n username: admin.email,\\r\\n password: admin.password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n adminToken = response.body.token;\\r\\n return adminToken;\\r\\n}\\r\\n\\r\\nconst addAssistant = async () => {\\r\\n if (!adminToken) {\\r\\n await getAdminToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/employees\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${adminToken}`)\\r\\n .send(assistant)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getAssistantToken = async () => {\\r\\n if (assistantToken) {\\r\\n return assistantToken;\\r\\n }\\r\\n const password = await addAssistant();\\r\\n var creds = {\\r\\n username: assistant.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n assistantToken = response.body.token;\\r\\n return assistantToken;\\r\\n}\\r\\n\\r\\nconst addTourist = async () => {\\r\\n if (!assistantToken) {\\r\\n await getAssistantToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/tourists\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${assistantToken}`)\\r\\n .send(tourist)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getTouristToken = async () => {\\r\\n if (userToken) {\\r\\n return userToken;\\r\\n }\\r\\n const password = await addTourist();\\r\\n var creds = {\\r\\n username: tourist.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n userToken = response.body.token;\\r\\n return userToken;\\r\\n}\\r\\n\\r\\nconst getExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Namal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\r\\n \\\"mobile\\\": \\\"981114844\\\",\\r\\n \\\"rommnumber\\\" : \\\"41\\\",\\r\\n\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n\\r\\n return tourist._id.toString();\\r\\n\\r\\n \\r\\n}\\r\\n\\r\\nconst getNonExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Kamal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n await tourist.remove();\\r\\n\\r\\n return tourist._id.toString();\\r\\n}\\r\\n\\r\\nconst decodeToken = (token) => {\\r\\n var decoded = jwt_decode(token);\\r\\n return decoded;\\r\\n}\\r\\n\\r\\nmodule.exports = {\\r\\n getAdminToken, getAssistantToken, getTouristToken, decodeToken, addTourist, getTouristToken ,getExistingId ,getNonExistingId\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/5d/user_helper_5d6019747344ffe72872c6622cdf23b3.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2692\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\user_helper.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13241,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":677,\"endOffset\":778,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"getAdminToken\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1089,\"count\":4}],\"isBlockCoverage\":false},{\"functionName\":\"addAssistant\",\"ranges\":[{\"startOffset\":1113,\"endOffset\":1339,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getAssistantToken\",\"ranges\":[{\"startOffset\":1368,\"endOffset\":1686,\"count\":2},{\"startOffset\":1404,\"endOffset\":1685,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1708,\"endOffset\":1943,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getTouristToken\",\"ranges\":[{\"startOffset\":1970,\"endOffset\":2264,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getExistingId\",\"ranges\":[{\"startOffset\":2289,\"endOffset\":2574,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getNonExistingId\",\"ranges\":[{\"startOffset\":2602,\"endOffset\":2862,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"decodeToken\",\"ranges\":[{\"startOffset\":2885,\"endOffset\":2950,\"count\":0}],\"isBlockCoverage\":false}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":9,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1614411957701,\"runtime\":3466,\"slow\":false,\"start\":1614411954235},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\schedule.test.js\",\"testResults\":[{\"ancestorTitles\":[\"Place Model\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Place Model Place model exists\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Place model exists\"},{\"ancestorTitles\":[\"GET /schedules\"],\"duration\":9,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /schedules requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /schedules\"],\"duration\":26,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /schedules with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /schedules\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /schedules requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"POST /schedules\"],\"duration\":50,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /schedules with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /schedules\"],\"duration\":23,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /schedules validation failed - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"validation failed - 403\"},{\"ancestorTitles\":[\"PUT /places\"],\"duration\":20,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /places does not support - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"does not support - 403\"},{\"ancestorTitles\":[\"DELETE /places\"],\"duration\":14,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /places requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"DELETE /places\"],\"duration\":29,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /places with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/01/app_010e21b7416079df77678cc6cb70a530.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nvar upload = require('../controllers/upload');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\", authenticate.verifyUser, upload.UploadUserImage);\\nuserRouter.get('/logout', authenticate.verifyUser, userController.logout);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsInVwbG9hZCIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwiVXBsb2FkVXNlckltYWdlIiwiZ2V0IiwibG9nb3V0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLElBQUlJLE1BQU0sR0FBR0osT0FBTyxDQUFDLHVCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUssRUFBQUE7QUFBRixJQUFrQkwsT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlNLFlBQVksR0FBR04sT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlPLGVBQWUsR0FBR1AsT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlRLGNBQWMsR0FBR1IsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1TLElBQUksR0FBR1QsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1MsR0FBWCxDQUFlUCxVQUFVLENBQUNRLElBQVgsRUFBZjtBQUVBVixVQUFVLENBQUNXLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZixVQUFVLENBQUNnQixJQUFYLENBQWdCLGVBQWhCLEVBQWlDUixJQUFJLENBQUNJLGVBQXRDLEVBQXVETCxjQUFjLENBQUNVLFdBQXRFO0FBRUFqQixVQUFVLENBQUNnQixJQUFYLENBQWdCLFFBQWhCLEVBQTBCUixJQUFJLENBQUNJLGVBQS9CLEVBQWdETCxjQUFjLENBQUNXLEtBQS9EO0FBRUFsQixVQUFVLENBQUNnQixJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBcEIsVUFBVSxDQUFDZ0IsSUFBWCxDQUFnQiwyQkFBaEIsRUFBNENYLFlBQVksQ0FBQ2MsVUFBekQsRUFBcUVoQixNQUFNLENBQUNrQixlQUE1RTtBQUVBckIsVUFBVSxDQUFDc0IsR0FBWCxDQUFlLFNBQWYsRUFBeUJqQixZQUFZLENBQUNjLFVBQXRDLEVBQWtEWixjQUFjLENBQUNnQixNQUFqRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJ6QixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxudmFyIHVwbG9hZCA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3VwbG9hZCcpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG52YXIgdXNlckNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy91c2VyQ29udHJvbGxlcicpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcblxyXG51c2VyUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG51c2VyUm91dGVyLm9wdGlvbnMoJyonLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcblxyXG51c2VyUm91dGVyLnBvc3QoJy9zaWdudXAvYWRtaW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIuc2lnbnVwQWRtaW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvbG9naW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIubG9naW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvY2hhbmdlcGFzc293b3JkLzppZCcsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVzZXJDb250cm9sbGVyLmNoYW5nZVBhc3Nvd29yZCk7XHJcblxyXG51c2VyUm91dGVyLnBvc3QoXCIvdXBkYXRlcHJvZmlsZXBpY3R1cmUvOmlkXCIsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVwbG9hZC5VcGxvYWRVc2VySW1hZ2UpO1xyXG5cclxudXNlclJvdXRlci5nZXQoJy9sb2dvdXQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5sb2dvdXQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nvar upload = require('../controllers/upload');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\",authenticate.verifyUser, upload.UploadUserImage);\\r\\n\\r\\nuserRouter.get('/logout',authenticate.verifyUser, userController.logout);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/a6/userRouter_a6221ff3be20743fe1c0fd1dc9fd8435.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4566,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4563,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":606,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const sharp = require('sharp');\\n\\nconst uid = require('uid');\\n\\nconst fs = require('fs');\\n\\nconst Users = require('../models/users');\\n\\nconst Places = require('../models/visitingPlaces');\\n\\nconst uploadFile = async (req, res) => {\\n try {\\n await upload(req, res);\\n\\n if (req.file == undefined) {\\n return res.send(`You must select a file.`);\\n }\\n\\n return res.send(`File has been uploaded.`);\\n } catch (error) {\\n return res.send(`Error when trying upload image: ${error}`);\\n }\\n};\\n\\nconst UploadUserImage = async (req, res, next) => {\\n try {\\n const user_id = req.params._id;\\n const user = await Users.findById(user_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/userImages/${imageUrl}`;\\n let previousImagePath = `images/userImages/${user.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'profile.png';\\n }\\n\\n user.image = imageUrl;\\n await user.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nconst uploadPlaceImage = async (req, res, next) => {\\n try {\\n const place_id = req.params._id;\\n const user = await Places.findById(place_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/placeImages/${imageUrl}`;\\n let previousImagePath = `images/placeImages/${place.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'image.png';\\n }\\n\\n place.image = imageUrl;\\n await place.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nexports.UploadUserImage = UploadUserImage;\\nexports.uploadFile = uploadFile;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVwbG9hZC5qcyJdLCJuYW1lcyI6WyJzaGFycCIsInJlcXVpcmUiLCJ1aWQiLCJmcyIsIlVzZXJzIiwiUGxhY2VzIiwidXBsb2FkRmlsZSIsInJlcSIsInJlcyIsInVwbG9hZCIsImZpbGUiLCJ1bmRlZmluZWQiLCJzZW5kIiwiZXJyb3IiLCJVcGxvYWRVc2VySW1hZ2UiLCJuZXh0IiwidXNlcl9pZCIsInBhcmFtcyIsIl9pZCIsInVzZXIiLCJmaW5kQnlJZCIsImltYWdlVXJsIiwib3JpZ2luYWxuYW1lIiwiZmlsZW5hbWUiLCJwcmV2aW91c0ltYWdlUGF0aCIsImltYWdlIiwiaW1hZ2VFeGlzdCIsImV4aXN0c1N5bmMiLCJkZWxldGVJbWFnZSIsInBhdGgiLCJyb3RhdGUiLCJyZXNpemUiLCJ0b0ZpbGUiLCJ1bmxpbmsiLCJlcnIiLCJzYXZlIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwibWVzc2FnZSIsInVwbG9hZFBsYWNlSW1hZ2UiLCJwbGFjZV9pZCIsInBsYWNlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsT0FBRCxDQUFyQjs7QUFDQSxNQUFNQyxHQUFHLEdBQUdELE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLElBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsS0FBSyxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBckI7O0FBQ0EsTUFBTUksTUFBTSxHQUFHSixPQUFPLENBQUMsMEJBQUQsQ0FBdEI7O0FBRUEsTUFBTUssVUFBVSxHQUFHLE9BQU9DLEdBQVAsRUFBWUMsR0FBWixLQUFvQjtBQUNuQyxNQUFJO0FBQ0EsVUFBTUMsTUFBTSxDQUFDRixHQUFELEVBQU1DLEdBQU4sQ0FBWjs7QUFFQSxRQUFJRCxHQUFHLENBQUNHLElBQUosSUFBWUMsU0FBaEIsRUFBMkI7QUFDdkIsYUFBT0gsR0FBRyxDQUFDSSxJQUFK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QUFkLEVBQThCLGtCQUE5QjtBQUNBN0IsSUFBQUEsR0FBRyxDQUFDOEIsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCQyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNIO0FBQ0osQ0F6Q0Q7O0FBMkNBSSxPQUFPLENBQUM5QixlQUFSLEdBQTBCQSxlQUExQjtBQUNBOEIsT0FBTyxDQUFDdEMsVUFBUixHQUFxQkEsVUFBckIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzaGFycCA9IHJlcXVpcmUoJ3NoYXJwJyk7XHJcbmNvbnN0IHVpZCA9IHJlcXVpcmUoJ3VpZCcpO1xyXG5jb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XHJcbmNvbnN0IFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFBsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpXHJcblxyXG5jb25zdCB1cGxvYWRGaWxlID0gYXN5bmMgKHJlcSwgcmVzKSA9PiB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHVwbG9hZChyZXEsIHJlcyk7XHJcblxyXG4gICAgICAgIGlmIChyZXEuZmlsZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBZb3UgbXVzdCBzZWxlY3QgYSBmaWxlLmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBGaWxlIGhhcyBiZWVuIHVwbG9hZGVkLmApO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICByZXR1cm4gcmVzLnNlbmQoYEVycm9yIHdoZW4gdHJ5aW5nIHVwbG9hZCBpbWFnZTogJHtlcnJvcn1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IFVwbG9hZFVzZXJJbWFnZSA9IGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBjb25zdCB1c2VyX2lkID0gcmVxLnBhcmFtcy5faWQ7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IGF3YWl0IFVzZXJzLmZpbmRCeUlkKHVzZXJfaWQpO1xyXG5cclxuICAgICAgICBsZXQgaW1hZ2VVcmw7XHJcbiAgICAgICAgaWYgKHJlcS5maWxlKSB7XHJcbiAgICAgICAgICAgIGltYWdlVXJsID0gYCR7dWlkKCl9X18ke3JlcS5maWxlLm9yaWdpbmFsbmFtZX1gO1xyXG4gICAgICAgICAgICBsZXQgZmlsZW5hbWUgPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHtpbWFnZVVybH1gO1xyXG4gICAgICAgICAgICBsZXQgcHJldmlvdXNJbWFnZVBhdGggPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHt1c2VyLmltYWdlfWA7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpbWFnZUV4aXN0ID0gZnMuZXhpc3RzU3luYyhwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIGlmIChpbWFnZUV4aXN0KSB7XHJcbiAgICAgICAgICAgICAgICBkZWxldGVJbWFnZShwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYXdhaXQgc2hhcnAocmVxLmZpbGUucGF0aClcclxuICAgICAgICAgICAgICAgIC5yb3RhdGUoKVxyXG4gICAgICAgICAgICAgICAgLnJlc2l6ZSg1MDAsIDUwMClcclxuICAgICAgICAgICAgICAgIC50b0ZpbGUoZmlsZW5hbWUpO1xyXG5cclxuICAgICAgICAgICAgZnMudW5saW5rKHJlcS5maWxlLnBhdGgsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9ICdwcm9maWxlLnBuZyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1c2VyLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgdXNlci5zYXZlKCk7XHJcblxyXG5cclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1N1Y2Nlc3NmdWxseSB1cGRhdGVkIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcblxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgdXBkYXRpbmcgcHJvZmlsZSBwaWN0dXJlJyB9KTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IHVwbG9hZFBsYWNlSW1hZ2UgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfaWQgPSByZXEucGFyYW1zLl9pZDtcclxuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgUGxhY2VzLmZpbmRCeUlkKHBsYWNlX2lkKTtcclxuXHJcbiAgICAgICAgbGV0IGltYWdlVXJsO1xyXG4gICAgICAgIGlmIChyZXEuZmlsZSkge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9IGAke3VpZCgpfV9fJHtyZXEuZmlsZS5vcmlnaW5hbG5hbWV9YDtcclxuICAgICAgICAgICAgbGV0IGZpbGVuYW1lID0gYGltYWdlcy9wbGFjZUltYWdlcy8ke2ltYWdlVXJsfWA7XHJcbiAgICAgICAgICAgIGxldCBwcmV2aW91c0ltYWdlUGF0aCA9IGBpbWFnZXMvcGxhY2VJbWFnZXMvJHtwbGFjZS5pbWFnZX1gO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaW1hZ2VFeGlzdCA9IGZzLmV4aXN0c1N5bmMocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICBpZiAoaW1hZ2VFeGlzdCkge1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlSW1hZ2UocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGF3YWl0IHNoYXJwKHJlcS5maWxlLnBhdGgpXHJcbiAgICAgICAgICAgICAgICAucm90YXRlKClcclxuICAgICAgICAgICAgICAgIC5yZXNpemUoNTAwLCA1MDApXHJcbiAgICAgICAgICAgICAgICAudG9GaWxlKGZpbGVuYW1lKTtcclxuXHJcbiAgICAgICAgICAgIGZzLnVubGluayhyZXEuZmlsZS5wYXRoLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaW1hZ2VVcmwgPSAnaW1hZ2UucG5nJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBsYWNlLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgcGxhY2Uuc2F2ZSgpO1xyXG5cclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6ICdTdWNjZXNzZnVsbHkgdXBkYXRlZCBwcm9maWxlIHBpY3R1cmUnIH0pO1xyXG5cclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnRzLlVwbG9hZFVzZXJJbWFnZSA9IFVwbG9hZFVzZXJJbWFnZTtcclxuZXhwb3J0cy51cGxvYWRGaWxlID0gdXBsb2FkRmlsZTsiXX0=\",\"originalCode\":\"const sharp = require('sharp');\\r\\nconst uid = require('uid');\\r\\nconst fs = require('fs');\\r\\nconst Users = require('../models/users');\\r\\nconst Places = require('../models/visitingPlaces')\\r\\n\\r\\nconst uploadFile = async (req, res) => {\\r\\n try {\\r\\n await upload(req, res);\\r\\n\\r\\n if (req.file == undefined) {\\r\\n return res.send(`You must select a file.`);\\r\\n }\\r\\n\\r\\n return res.send(`File has been uploaded.`);\\r\\n } catch (error) {\\r\\n return res.send(`Error when trying upload image: ${error}`);\\r\\n }\\r\\n};\\r\\n\\r\\nconst UploadUserImage = async (req, res, next) => {\\r\\n try {\\r\\n const user_id = req.params._id;\\r\\n const user = await Users.findById(user_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/userImages/${imageUrl}`;\\r\\n let previousImagePath = `images/userImages/${user.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'profile.png';\\r\\n }\\r\\n\\r\\n user.image = imageUrl;\\r\\n await user.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nconst uploadPlaceImage = async (req, res, next) => {\\r\\n try {\\r\\n const place_id = req.params._id;\\r\\n const user = await Places.findById(place_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/placeImages/${imageUrl}`;\\r\\n let previousImagePath = `images/placeImages/${place.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'image.png';\\r\\n }\\r\\n\\r\\n place.image = imageUrl;\\r\\n await place.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nexports.UploadUserImage = UploadUserImage;\\r\\nexports.uploadFile = uploadFile;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/70/upload_70c590d2bd713c9562e3916387ba4116.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\upload.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":12791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":12788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"uploadFile\",\"ranges\":[{\"startOffset\":293,\"endOffset\":580,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"UploadUserImage\",\"ranges\":[{\"startOffset\":607,\"endOffset\":1704,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"uploadPlaceImage\",\"ranges\":[{\"startOffset\":1732,\"endOffset\":2835,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fa/users_fa250a82bd410ffb1909f920e93eed19.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2324\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c4/visitingPlaces_c4ccc91c117df8c4aeada72a82534688.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2335\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Moderater Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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RyxHQUFHLElBQUlRLEtBQUosQ0FBVSxnQ0FBVixDQUFOO0FBQ0FSLElBQUFBLEdBQUcsQ0FBQ1MsTUFBSixHQUFhLEdBQWI7QUFDQSxXQUFPSCxJQUFJLENBQUNOLEdBQUQsQ0FBWDtBQUNIO0FBQ0osQ0FkRCIsInNvdXJjZXNDb250ZW50IjpbInZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBMb2NhbFN0cmF0ZWd5ID0gcmVxdWlyZSgncGFzc3BvcnQtbG9jYWwnKS5TdHJhdGVneTtcclxudmFyIFVzZXIgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciBKd3RTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLlN0cmF0ZWd5O1xyXG52YXIgRXh0cmFjdEp3dCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLkV4dHJhY3RKd3Q7XHJcbnZhciBqd3QgPSByZXF1aXJlKCdqc29ud2VidG9rZW4nKTtcclxuXHJcblxyXG5wYXNzcG9ydC51c2UobmV3IExvY2FsU3RyYXRlZ3koVXNlci5hdXRoZW50aWNhdGUoKSkpO1xyXG5wYXNzcG9ydC5zZXJpYWxpemVVc2VyKFVzZXIuc2VyaWFsaXplVXNlcigpKTtcclxucGFzc3BvcnQuZGVzZXJpYWxpemVVc2VyKFVzZXIuZGVzZXJpYWxpemVVc2VyKCkpO1xyXG5cclxuZXhwb3J0cy5nZXRUb2tlbiA9ICh1c2VyKSA9PiB7XHJcbiAgICByZXR1cm4gand0LnNpZ24odXNlciwgcHJvY2Vzcy5lbnYuc2VjcmV0S2V5LFxyXG4gICAgICAgIHsgZXhwaXJlc0luOiAzNjAwIH0pO1xyXG59O1xyXG5cclxudmFyIG9wdHMgPSB7fTtcclxub3B0cy5qd3RGcm9tUmVxdWVzdCA9IEV4dHJhY3RKd3QuZnJvbUF1dGhIZWFkZXJBc0JlYXJlclRva2VuKCk7XHJcbm9wdHMuc2VjcmV0T3JLZXkgPSBwcm9jZXNzLmVudi5zZWNyZXRLZXk7XHJcblxyXG5leHBvcnRzLmp3dFBhc3Nwb3J0ID0gcGFzc3BvcnQudXNlKG5ldyBKd3RTdHJhdGVneShvcHRzLFxyXG4gICAgKGp3dF9wYXlsb2FkLCBkb25lKSA9PiB7XHJcbiAgICAgICAgVXNlci5maW5kT25lKHsgX2lkOiBqd3RfcGF5bG9hZC5faWQgfSwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShlcnIsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCB1c2VyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkb25lKG51bGwsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSkpO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlVc2VyID0gcGFzc3BvcnQuYXV0aGVudGljYXRlKCdqd3QnLCB7IHNlc3Npb246IGZhbHNlIH0pO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ2FkbWluJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlICE9ICdhZG1pbicpIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ0FkbWluIFZlcmlmaWNhdGlvbiBGYWlsZWQhJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDUwMDtcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnZlcmlmeU1vZGVyYXRlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgIT0gJ3VzZXInKSB7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdNb2RlcmF0ZXIgVmVyaWZpY2F0aW9uIEZhaWxlZCEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNTAwO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuIl19\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Moderater Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/83/authenticate_83ba38785e68b531d6a7c8378dfee9c9.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2336\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8642,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8639,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":8}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":8}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1871,\"count\":2}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4b/validation_4b7a8ff68e044daa8c6daa8312a761dc.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2369\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(newPasswordString, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, function (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating Password'\\n });\\n });\\n};\\n\\nconst logout = (req, res) => {\\n if (req.session) {\\n req.session.destroy();\\n res.clearCookie('session-id');\\n } else {\\n var err = new Error('You are not logged in!');\\n err.status = 403;\\n }\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.logout = logout;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsImZpbmRCeUlkIiwidGhlbiIsInNhbml0aXplZFVzZXIiLCJzZXRQYXNzd29yZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwibWVzc2FnZSIsImxvZ291dCIsInNlc3Npb24iLCJkZXN0cm95IiwiY2xlYXJDb29raWUiLCJFcnJvciIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBckI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBYjs7QUFFQSxJQUFJQyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxpQkFBRCxDQUFuQjs7QUFDQSxJQUFJSSxRQUFRLEdBQUdKLE9BQU8sQ0FBQyxVQUFELENBQXRCOztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUdBLE1BQU1NLFdBQVcsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUNwQyxNQUFJQyxLQUFLLEdBQUc7QUFDUkMsSUFBQUEsUUFBUSxFQUFFSixHQUFHLENBQUNLLElBQUos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LEdBQWlCLEdBQWpCO0FBQ0FiLElBQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLElBQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCa0IsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQWpCRDtBQWtCSCxDQXBCRDs7QUFzQkEsTUFBTUMsTUFBTSxHQUFHLENBQUNwQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUN6QixNQUFJRCxHQUFHLENBQUNxQyxPQUFSLEVBQWlCO0FBQ2JyQyxJQUFBQSxHQUFHLENBQUNxQyxPQUFKLENBQVlDLE9BQVo7QUFDQXJDLElBQUFBLEdBQUcsQ0FBQ3NDLFdBQUosQ0FBZ0IsWUFBaEI7QUFDSCxHQUhELE1BSUs7QUFDRCxRQUFJM0IsR0FBRyxHQUFHLElBQUk0QixLQUFKLENBQVUsd0JBQVYsQ0FBVjtBQUNBNUIsSUFBQUEsR0FBRyxDQUFDTSxNQUFKLEdBQWEsR0FBYjtBQUNIO0FBQ0osQ0FURDs7QUFXQXVCLE9BQU8sQ0FBQzFDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0EwQyxPQUFPLENBQUNyQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBcUIsT0FBTyxDQUFDTCxNQUFSLEdBQWlCQSxNQUFqQjtBQUNBSyxPQUFPLENBQUNmLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbnZhciByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxudmFyIFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG5cclxuXHJcbmNvbnN0IHNpZ251cEFkbWluID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgYWRtaW4gPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIGZpcnN0bmFtZTogcmVxLmJvZHkuZmlyc3RuYW1lLFxyXG4gICAgICAgIGxhc3RuYW1lOiByZXEuYm9keS5sYXN0bmFtZSxcclxuICAgICAgICBlbWFpbDogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgcm9sZTogJ2FkbWluJ1xyXG4gICAgfVxyXG4gICAgVXNlcnMucmVnaXN0ZXIobmV3IFVzZXJzKGFkbWluKSxcclxuICAgICAgICByZXEuYm9keS5wYXNzd29yZCwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gVW5zdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVxLmJvZHkuZmlyc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIuZmlyc3RuYW1lID0gcmVxLmJvZHkuZmlyc3RuYW1lO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5Lmxhc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIubGFzdG5hbWUgPSByZXEuYm9keS5sYXN0bmFtZTtcclxuICAgICAgICAgICAgICAgIHVzZXIuc2F2ZSgoZXJyLCB1c2VyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHN0YXR1czogJ1JlZ2lzdHJhdGlvbiBTdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dpbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgcGFzc3BvcnQuYXV0aGVudGljYXRlKCdsb2NhbCcsIChlcnIsIHVzZXIsIGluZm8pID0+IHtcclxuXHJcbiAgICAgICAgaWYgKCF1c2VyKSB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAxO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdMb2dpbiBVbnN1Y2Nlc3NmdWwhJywgZXJyOiBpbmZvIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXEubG9nSW4odXNlciwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB2YXIgdG9rZW4gPSBhdXRoZW50aWNhdGUuZ2V0VG9rZW4oeyBfaWQ6IHJlcS51c2VyLl9pZCwgcm9sZTogdXNlci5yb2xlIH0pO1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdMb2dpbiBTdWNjZXNzZnVsIScsIHRva2VuOiB0b2tlbiwgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KShyZXEsIHJlcywgbmV4dCk7XHJcbn1cclxuXHJcbmNvbnN0IGNoYW5nZVBhc3Nvd29yZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHVzZXJJZCA9IHJlcS5wYXJhbXMuaWQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKG5ld1Bhc3N3b3JkU3RyaW5nLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ3Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgZnVuY3Rpb24gKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIFBhc3N3b3JkJyB9KTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dvdXQgPSAocmVxLCByZXMpID0+IHtcclxuICAgIGlmIChyZXEuc2Vzc2lvbikge1xyXG4gICAgICAgIHJlcS5zZXNzaW9uLmRlc3Ryb3koKTtcclxuICAgICAgICByZXMuY2xlYXJDb29raWUoJ3Nlc3Npb24taWQnKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGxvZ2dlZCBpbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5sb2dvdXQgPSBsb2dvdXQ7XHJcbmV4cG9ydHMuY2hhbmdlUGFzc293b3JkID0gY2hhbmdlUGFzc293b3JkOyJdfQ==\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(newPasswordString, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, function (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating Password' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst logout = (req, res) => {\\r\\n if (req.session) {\\r\\n req.session.destroy();\\r\\n res.clearCookie('session-id');\\r\\n }\\r\\n else {\\r\\n var err = new Error('You are not logged in!');\\r\\n err.status = 403;\\r\\n }\\r\\n}\\r\\n\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.logout = logout;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1b/userController_1b7f9872a721ffd88b6634cf95f37bee.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2370\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13343,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13340,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2707,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"logout\",\"ranges\":[{\"startOffset\":2725,\"endOffset\":2913,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/cors_34beef0e65d7cfb3f2bb7a05fb9de802.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2371\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":12}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/3b/employeeRouter_3bb83cd3174a28ed34e0f44c133b9b42.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2372\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n throw err;\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n throw err;\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while deletting.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsImZpcnN0bmFtZSIsIiRyZWdleCIsIiRvcHRpb25zIiwic29ydGJ5Iiwic29ydEJ5Iiwic29ydCIsImFkZEVtcGxveWVlIiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJlbXBsb3llZSIsInVzZXJuYW1lIiwiZW1haWwiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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QUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFRixHQUFHLENBQUNFO0FBQS9CLEtBQVQ7QUFDSCxHQVhMO0FBWUgsQ0FiRDs7QUFlQTJCLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNLLHlCQUFSLEdBQW9DQSx5QkFBcEM7QUFDQUwsT0FBTyxDQUFDUyxtQkFBUixHQUE4QkEsbUJBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRW1wbG95ZWVzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMvdXRpbHMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBnZXQgZGV0YWlscyBvZiB0aGUgYXNzaXN0YW50c1xyXG4gKiBAcGFyYW0geyp9IHJlcSBcclxuICogQHBhcmFtIHsqfSByZXMgXHJcbiAqIEBwYXJhbSB7Kn0gbmV4dCBcclxuICogQHJldHVybnMge2FycmF5fSBsaXN0IG9mIGVtcGxveWVlc1xyXG4gKi9cclxuY29uc3QgZ2V0QWxsRW1wbG95ZWVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH07XHJcbiAgICBFbXBsb3llZXMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbEVtcGxveWVlc0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9O1xyXG4gICAgLy8gaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgLy8gICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgLy8gICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9XHJcbiAgICAvLyB9XHJcbiAgICBpZiAocmVxLmJvZHkuc2ltaWxhclRvKSB7XHJcbiAgICAgICAgdmFyIHNlYXJjaEJ5ID0gcmVxLmJvZHkuc2ltaWxhclRvIHx8IHt9XHJcbiAgICAgICAgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiLCBmaXJzdG5hbWU6IHsgJHJlZ2V4OiBgJHtzZWFyY2hCeX1gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgRW1wbG95ZWVzLmZpbmQocXVlcnkpLnNvcnQoc29ydGJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZ2V0dGluZyBkYXRhJyB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGVtcGxveWVlLnNhdmUoKGVyciwgZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtYWlsOiBlbXBsb3llZS5lbWFpbCwgcGFzc3dvcmQ6IHJhbmRvbVBhc3N3b3JkIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIEVtcGxveWVlcy5yZW1vdmUoeyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzID0gZ2V0QWxsRW1wbG95ZWVzO1xyXG5leHBvcnRzLmdldEFsbEVtcGxveWVlc0J5TmFtZSA9IGdldEFsbEVtcGxveWVlc0J5TmFtZTtcclxuZXhwb3J0cy5hZGRFbXBsb3llZSA9IGFkZEVtcGxveWVlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbEVtcGxveWVlcyA9IGRlbGV0ZUFsbEVtcGxveWVlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigoZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWU6IGVtcGxveWVlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGVtcGxveWVlID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdtb2RlcmF0ZXInXHJcbiAgICB9XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5lbXBsb3llZUlkLCB7XHJcbiAgICAgICAgJHNldDogZW1wbG95ZWVcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlOiBlbXBsb3llZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHVwZGF0aW5nLlwiKTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBRW1wbG95ZWVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIGRlbGV0dGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRFbXBsb3llZURldGFpbHNCeUlkID0gZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVFbXBsb3llZURldGFpbHNCeUlkID0gdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBRW1wbG95ZWVCeUlkID0gZGVsZXRlQUVtcGxveWVlQnlJZDsiXX0=\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while deletting.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4c/employeeController_4c102fe7873f734bd5117d404757cd9d.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2373\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22614,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22611,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":1053,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":1086,\"endOffset\":1976,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1999,\"endOffset\":2993,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2326,\"endOffset\":2750,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2420,\"endOffset\":2734,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3023,\"endOffset\":3260,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3709,\"endOffset\":3993,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4030,\"endOffset\":4740,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4771,\"endOffset\":5211,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const multer = require('multer');\\n\\nconst {\\n v4: uuidv4\\n} = require('uuid');\\n\\nlet path = require('path');\\n\\nconst storage = multer.diskStorage({\\n destination: function (req, file, cb) {\\n cb(null, 'images');\\n },\\n filename: function (req, file, cb) {\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\n }\\n});\\n\\nconst fileFilter = (req, file, cb) => {\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\n\\n if (allowedFileTypes.includes(file.mimetype)) {\\n cb(null, true);\\n } else {\\n cb(null, false);\\n }\\n};\\n\\nlet upload = multer({\\n storage,\\n fileFilter\\n});\\nexports.upload = upload;\\n\\nconst password_generator = len => {\\n var length = len ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbIm11bHRlciIsInJlcXVpcmUiLCJ2NCIsInV1aWR2NCIsInBhdGgiLCJzdG9yYWdlIiwiZGlza1N0b3JhZ2UiLCJkZXN0aW5hdGlvbiIsInJlcSIsImZpbGUiLCJjYiIsImZpbGVuYW1lIiwiRGF0ZSIsIm5vdyIsImV4dG5hbWUiLCJvcmlnaW5hbG5hbWUiLCJmaWxlRmlsdGVyIiwiYWxsb3dlZEZpbGVUeXBlcyIsImluY2x1ZGVzIiwibWltZXR5cGUiLCJ1cGxvYWQiLCJleHBvcnRzIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwibGVuIiwibGVuZ3RoIiwic3RyaW5nIiwibnVtZXJpYyIsInB1bmN0dWF0aW9uIiwicGFzc3dvcmQiLCJjaGFyYWN0ZXIiLCJjcnVuY2giLCJlbnRpdHkxIiwiTWF0aCIsImNlaWwiLCJyYW5kb20iLCJlbnRpdHkyIiwiZW50aXR5MyIsImhvbGQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNwbGl0Iiwic29ydCIsImpvaW4iLCJzdWJzdHIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxFQUFFLEVBQUVDO0FBQU4sSUFBaUJGLE9BQU8sQ0FBQyxNQUFELENBQTlCOztBQUNBLElBQUlHLElBQUksR0FBR0gsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBQ0EsTUFBTUksT0FBTyxHQUFHTCxNQUFNLENBQUNNLFdBQVAsQ0FBbUI7QUFDL0JDLEVBQUFBLFdBQVcsRUFBRSxVQUFVQyxHQUFWLEVBQWVDLElBQWYsRUFBcUJDLEVBQXJCLEVBQXlCO0FBQ2xDQSxJQUFBQSxFQUFFLENBQUMsSUFBRCxFQUFPLFFBQVAsQ0FBRjtBQUNILEdBSDhCO0FBSS9CQyxFQUFBQSxRQUFRLEVBQUUsVUFBVUgsR0FBVixFQUFlQyxJQUFmLEVBQXFCQyxFQUFyQixFQUF5QjtBQUMvQkEsSUFBQUEsRUFBRSxDQUFDLElBQUQsRUFBT1AsTUFBTSxLQUFLLEdBQVgsR0FBaUJTLElBQUksQ0FBQ0MsR0FBTCxFQUFqQixHQUE4QlQsSUFBSSxDQUFDVSxPQUFMLENBQWFMLElBQUksQ0FBQ00sWUFBbEIsQ0FBckMsQ0FBRjtBQUNIO0FBTjhCLENBQW5CLENBQWhCOztBQVNBLE1BQU1DLFVBQVUsR0FBRyxDQUFDUixHQUFELEVBQU1DLElBQU4sRUFBWUMsRUFBWixLQUFtQjtBQUNsQyxRQUFNTyxnQkFBZ0IsR0FBRyxDQUFDLFlBQUQsRUFBZSxXQUFmLEVBQTRCLFdBQTVCLENBQXpCOztBQUNBLE1BQUlBLGdCQUFnQixDQUFDQyxRQUFqQixDQUEwQlQsSUFBSSxDQUFDVSxRQUEvQixDQUFKLEVBQThDO0FBQzFDVCxJQUFBQSxFQUFFLENBQUMsSUFBRCxFQUFPLElBQVAsQ0FBRjtBQUNILEdBRkQsTUFFTztBQUNIQSxJQUFBQSxFQUFFLENBQUMsSUFBRCxFQUFPLEtBQVAsQ0FBRjtBQUNIO0FBQ0osQ0FQRDs7QUFTQSxJQUFJVSxNQUFNLEdBQUdwQixNQUFNLENBQUM7QUFBRUssRUFBQUEsT0FBRjtBQUFXVyxFQUFBQTtBQUFYLENBQUQsQ0FBbkI7QUFFQUssT0FBTyxDQUFDRCxNQUFSLEdBQWlCQSxNQUFqQjs7QUFFQSxNQUFNRSxrQkFBa0IsR0FBSUMsR0FBRCxJQUFTO0FBQ2hDLE1BQUlDLE1BQU0sR0FBSUQsR0FBRCxHQUFTQSxHQUFULEdBQWlCLEVBQTlCO0FBQ0EsTUFBSUUsTUFBTSxHQUFHLDRCQUFiLENBRmdDLENBRVc7O0FBQzNDLE1BQUlDLE9BQU8sR0FBRyxZQUFkO0FBQ0EsTUFBSUMsV0FBVyxHQUFHLGdDQUFsQjtBQUNBLE1BQUlDLFFBQVEsR0FBRyxFQUFmO0FBQ0EsTUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBQ0EsTUFBSUMsTUFBTSxHQUFHLElBQWI7O0FBQ0EsU0FBT0YsUUFBUSxDQUFDSixNQUFULEdBQWtCQSxNQUF6QixFQUFpQztBQUM3Qk8sSUFBQUEsT0FBTyxHQUFHQyxJQUFJLENBQUNDLElBQUwsQ0FBVVIsTUFBTSxDQUFDRCxNQUFQLEdBQWdCUSxJQUFJLENBQUNFLE1BQUwsRUFBaEIsR0FBZ0NGLElBQUksQ0FBQ0UsTUFBTCxFQUExQyxDQUFWO0FBQ0FDLElBQUFBLE9BQU8sR0FBR0gsSUFBSSxDQUFDQyxJQUFMLENBQVVQLE9BQU8sQ0FBQ0YsTUFBUixHQUFpQlEsSUFBSSxDQUFDRSxNQUFMLEVBQWpCLEdBQWlDRixJQUFJLENBQUNFLE1BQUwsRUFBM0MsQ0FBVjtBQUNBRSxJQUFBQSxPQUFPLEdBQUdKLElBQUksQ0FBQ0MsSUFBTCxDQUFVTixXQUFXLENBQUNILE1BQVosR0FBcUJRLElBQUksQ0FBQ0UsTUFBTCxFQUFyQixHQUFxQ0YsSUFBSSxDQUFDRSxNQUFMLEVBQS9DLENBQVY7QUFDQUcsSUFBQUEsSUFBSSxHQUFHWixNQUFNLENBQUNhLE1BQVAsQ0FBY1AsT0FBZCxDQUFQO0FBQ0FNLElBQUFBLElBQUksR0FBSVQsUUFBUSxDQUFDSixNQUFULEdBQWtCLENBQWxCLElBQXVCLENBQXhCLEdBQThCYSxJQUFJLENBQUNFLFdBQUwsRUFBOUIsR0FBcURGLElBQTVEO0FBQ0FSLElBQUFBLFNBQVMsSUFBSVEsSUFBYjtBQUNBUixJQUFBQSxTQUFTLElBQUlILE9BQU8sQ0FBQ1ksTUFBUixDQUFlSCxPQUFmLENBQWI7QUFDQU4sSUFBQUEsU0FBUyxJQUFJRixXQUFXLENBQUNXLE1BQVosQ0FBbUJGLE9BQW5CLENBQWI7QUFDQVIsSUFBQUEsUUFBUSxHQUFHQyxTQUFYO0FBQ0g7O0FBQ0RELEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDWSxLQUFULENBQWUsRUFBZixFQUFtQkMsSUFBbkIsQ0FBd0IsWUFBWTtBQUFFLFdBQU8sTUFBTVQsSUFBSSxDQUFDRSxNQUFMLEVBQWI7QUFBNEIsR0FBbEUsRUFBb0VRLElBQXBFLENBQXlFLEVBQXpFLENBQVg7QUFDQSxTQUFPZCxRQUFRLENBQUNlLE1BQVQsQ0FBZ0IsQ0FBaEIsRUFBbUJuQixNQUFuQixDQUFQO0FBQ0gsQ0FyQkQ7O0FBdUJBSCxPQUFPLENBQUNDLGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtdWx0ZXIgPSByZXF1aXJlKCdtdWx0ZXInKTtcclxuY29uc3QgeyB2NDogdXVpZHY0IH0gPSByZXF1aXJlKCd1dWlkJyk7XHJcbmxldCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xyXG5jb25zdCBzdG9yYWdlID0gbXVsdGVyLmRpc2tTdG9yYWdlKHtcclxuICAgIGRlc3RpbmF0aW9uOiBmdW5jdGlvbiAocmVxLCBmaWxlLCBjYikge1xyXG4gICAgICAgIGNiKG51bGwsICdpbWFnZXMnKTtcclxuICAgIH0sXHJcbiAgICBmaWxlbmFtZTogZnVuY3Rpb24gKHJlcSwgZmlsZSwgY2IpIHtcclxuICAgICAgICBjYihudWxsLCB1dWlkdjQoKSArICctJyArIERhdGUubm93KCkgKyBwYXRoLmV4dG5hbWUoZmlsZS5vcmlnaW5hbG5hbWUpKTtcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBmaWxlRmlsdGVyID0gKHJlcSwgZmlsZSwgY2IpID0+IHtcclxuICAgIGNvbnN0IGFsbG93ZWRGaWxlVHlwZXMgPSBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL3BuZyddO1xyXG4gICAgaWYgKGFsbG93ZWRGaWxlVHlwZXMuaW5jbHVkZXMoZmlsZS5taW1ldHlwZSkpIHtcclxuICAgICAgICBjYihudWxsLCB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2IobnVsbCwgZmFsc2UpO1xyXG4gICAgfVxyXG59XHJcblxyXG5sZXQgdXBsb2FkID0gbXVsdGVyKHsgc3RvcmFnZSwgZmlsZUZpbHRlciB9KTtcclxuXHJcbmV4cG9ydHMudXBsb2FkID0gdXBsb2FkO1xyXG5cclxuY29uc3QgcGFzc3dvcmRfZ2VuZXJhdG9yID0gKGxlbikgPT4ge1xyXG4gICAgdmFyIGxlbmd0aCA9IChsZW4pID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfH17W11cXDo7Pz48LC4vLT0nO1xyXG4gICAgdmFyIHBhc3N3b3JkID0gXCJcIjtcclxuICAgIHZhciBjaGFyYWN0ZXIgPSBcIlwiO1xyXG4gICAgdmFyIGNydW5jaCA9IHRydWU7XHJcbiAgICB3aGlsZSAocGFzc3dvcmQubGVuZ3RoIDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgZW50aXR5MSA9IE1hdGguY2VpbChzdHJpbmcubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTIgPSBNYXRoLmNlaWwobnVtZXJpYy5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgZW50aXR5MyA9IE1hdGguY2VpbChwdW5jdHVhdGlvbi5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgaG9sZCA9IHN0cmluZy5jaGFyQXQoZW50aXR5MSk7XHJcbiAgICAgICAgaG9sZCA9IChwYXNzd29yZC5sZW5ndGggJSAyID09IDApID8gKGhvbGQudG9VcHBlckNhc2UoKSkgOiAoaG9sZCk7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IGhvbGQ7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IG51bWVyaWMuY2hhckF0KGVudGl0eTIpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBwdW5jdHVhdGlvbi5jaGFyQXQoZW50aXR5Myk7XHJcbiAgICAgICAgcGFzc3dvcmQgPSBjaGFyYWN0ZXI7XHJcbiAgICB9XHJcbiAgICBwYXNzd29yZCA9IHBhc3N3b3JkLnNwbGl0KCcnKS5zb3J0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAuNSAtIE1hdGgucmFuZG9tKCkgfSkuam9pbignJyk7XHJcbiAgICByZXR1cm4gcGFzc3dvcmQuc3Vic3RyKDAsIGxlbmd0aCk7XHJcbn1cclxuXHJcbmV4cG9ydHMucGFzc3dvcmRfZ2VuZXJhdG9yID0gcGFzc3dvcmRfZ2VuZXJhdG9yOyJdfQ==\",\"originalCode\":\"const multer = require('multer');\\r\\nconst { v4: uuidv4 } = require('uuid');\\r\\nlet path = require('path');\\r\\nconst storage = multer.diskStorage({\\r\\n destination: function (req, file, cb) {\\r\\n cb(null, 'images');\\r\\n },\\r\\n filename: function (req, file, cb) {\\r\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\r\\n }\\r\\n});\\r\\n\\r\\nconst fileFilter = (req, file, cb) => {\\r\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\r\\n if (allowedFileTypes.includes(file.mimetype)) {\\r\\n cb(null, true);\\r\\n } else {\\r\\n cb(null, false);\\r\\n }\\r\\n}\\r\\n\\r\\nlet upload = multer({ storage, fileFilter });\\r\\n\\r\\nexports.upload = upload;\\r\\n\\r\\nconst password_generator = (len) => {\\r\\n var length = (len) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/f3/utils_f37ac8376b54b6ced952605900298d07.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2374\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":7861,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":7858,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"destination\",\"ranges\":[{\"startOffset\":248,\"endOffset\":302,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"filename\",\"ranges\":[{\"startOffset\":316,\"endOffset\":423,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"fileFilter\",\"ranges\":[{\"startOffset\":448,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":752,\"endOffset\":1636,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1537,\"endOffset\":1586,\"count\":59}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9d/placeRouter_9d9aca2c41f2c1b6283bdacdd67537b2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2415\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/ee/placeController_ee3a20e34d4d356553af723b6f7f6a6e.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2416\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwidmVyaWZ5TW9kZXJhdGVyIiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNB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T0FBUCxHQUFpQjlCLGNBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHNjaGVkdWxlQ29udHJvbGxlciA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3NjaGVkdWxlQ29udHJvbGxlcicpXHJcblxyXG5jb25zdCBzY2hlZHVsZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgUm91dGVzXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnLycpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeU1vZGVyYXRlciwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlQWxsU2NoZWR1bGVzKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBSb3V0ZXMgT24gSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvOnNjaGVkdWxlSWQnKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgc2NoZWR1bGVDb250cm9sbGVyLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvc2NoZWR1bGVzLycgKyByZXEucGFyYW1zLnNjaGVkdWxlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIudXBkYXRlU2NoZWR1bGVCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgc2NoZWR1bGVDb250cm9sbGVyLmRlbGV0ZVNjaGVkdWxlQnlJZCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnL3VzZXIvOnVzZXJJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAgc2NoZWR1bGVDb250cm9sbGVyLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gc2NoZWR1bGVSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9b/scheduleRouter_9b57edc7078385d142c957dea9d9e0be.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2417\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9621,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9618,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1085,\"endOffset\":1188,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1621,\"endOffset\":1661,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1824,\"endOffset\":1953,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2288,\"endOffset\":2328,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to add a schedule\\\"\\n });\\n });\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Update failed\\\"\\n });\\n });\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Delete failed\\\"\\n });\\n });\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwibXNnIiwiX21lc3NhZ2UiLCJhZGRTY2hlZHVsZSIsInNjaGVkdWxlIiwidXNlciIsImJvZHkiLCJwbGFjZSIsImRhdGUiLCJzdGF0ZSIsInRyYXZlbGxpbmdNZXRob2QiLCJjcmVhdGUiLCJkZWxldGVBbGxTY2hlZHVsZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInNjaGVkdWxlSWQiLCJ1cGRhdGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxxQkFBRCxDQUF6QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3hDTCxFQUFBQSxTQUFTLENBQUNNLElBQVYsQ0FBZUgsR0FBRyxDQUFDSSxLQUFuQixFQUEwQkMsUUFBMUIsQ0FBbUMsT0FBbkMsRUFBNENBLFFBQTVDLENBQXFELE1BQXJELEVBQ0tDLElBREwsQ0FDV0MsU0FBRCxJQUFlO0FBQ2pCTixJQUFBQSxHQUFHLENBQUNPLFVBQUosR0FBaUIs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Q1cwQixJQUFELElBQVU7QUFDWi9CLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQmdDLE1BQUFBLFFBQVEsRUFBQ1g7QUFBMUIsS0FBVDtBQUNILEdBTEwsRUFLUXBCLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTO0FBQ1pYLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQVZMO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gZ2V0IGRhdGFcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJ1c2VyXCI6IFN0cmluZyhyZXEucGFyYW1zLnVzZXJJZCkgfTtcclxuICAgIFNjaGVkdWxlcy5maW5kKHF1ZXJ5KS5wb3B1bGF0ZShcInBsYWNlXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+ICB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICBjb25zdCBtc2cgPSBlcnIuX21lc3NhZ2U7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IG1zZyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkZhaWxlZCB0byBnZXQgZGF0YVwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBhZGRTY2hlZHVsZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHNjaGVkdWxlID0ge1xyXG4gICAgICAgIHVzZXI6IHJlcS5ib2R5LnVzZXIsXHJcbiAgICAgICAgcGxhY2U6IHJlcS5ib2R5LnBsYWNlLFxyXG4gICAgICAgIGRhdGU6IHJlcS5ib2R5LmRhdGUsXHJcbiAgICAgICAgc3RhdGU6IFwibmV3XCIsXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZDogcmVxLmJvZHkudHJhdmVsbGluZ01ldGhvZFxyXG4gICAgfVxyXG4gICAgU2NoZWR1bGVzLmNyZWF0ZShzY2hlZHVsZSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6c2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgY29uc3QgbXNnID0gZXJyLl9tZXNzYWdlO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBtc2cgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gYWRkIGEgc2NoZWR1bGVcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzID0gZ2V0QWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmFkZFNjaGVkdWxlID0gYWRkU2NoZWR1bGU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsU2NoZWR1bGVzID0gZGVsZXRlQWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyID0gZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXI7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlOnNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBwbGFjZVwiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgU2NoZWR1bGVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuc2NoZWR1bGVJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTpzY2hlZHVsZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiVXBkYXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6cmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiRGVsZXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnRzLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSBnZXRTY2hlZHVsZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVNjaGVkdWxlQnlJZCA9IHVwZGF0ZVNjaGVkdWxlQnlJZDtcclxuZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5SWQgPSBkZWxldGVTY2hlZHVsZUJ5SWQ7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgVXNlcklEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vLyBjb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4vLyAgICAgU2NoZWR1bGVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuc2NoZWR1bGVJZClcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuLy8gICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4vLyAgICAgfSwgeyBuZXc6IHRydWUgfSlcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IGRlbGV0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4vLyAgICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuLy8gICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxuLy8gfSJdfQ==\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to add a schedule\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Update failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response:resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Delete failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1e/scheduleController_1ed35fc0c47927fadcf3cf43433b4df6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2542\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":846,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":472,\"endOffset\":642,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":644,\"endOffset\":660,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":668,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":881,\"endOffset\":1554,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1577,\"endOffset\":2348,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"Schedules.create.then.res.statusCode\",\"ranges\":[{\"startOffset\":1800,\"endOffset\":1967,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1969,\"endOffset\":2156,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2164,\"endOffset\":2344,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2378,\"endOffset\":2588,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2428,\"endOffset\":2542,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2544,\"endOffset\":2560,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2568,\"endOffset\":2584,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":3041,\"endOffset\":3489,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3519,\"endOffset\":4012,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":4042,\"endOffset\":4480,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/e2/schedules_e2f8e79bc28961f4db3736c92d490e47.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2543\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0a/touristRouter_0ad938586662daadc81c6cb1ad2e0f53.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2545\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var error = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while deleting data'\\n });\\n });\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJtZXNzYWdlIiwiZ2V0QWxsVG91cmlzdHNCeU5hbWUiLCJib2R5Iiwic2ltaWxhclRvIiwic2VhcmNoQnkiLCIkdGV4dCIsIiRzZWFyY2giLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkVG91cmlzdCIsInJhbmRvbVBhc3N3b3JkIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwidG91cmlzdCIsInVzZXJuYW1lIiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsIm1vYmlsZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxUb3VyaXN0cyIsInJlbW92ZSIsInJlc3AiLCJyZXNwb25zZSIsImV4cG9ydHMiLCJnZXRUb3VyaXN0RGV0YWlsc0J5SWQiLCJ0b3VyaXN0SWQiLCJwYXJhbXMiLCJmaW5kQnlJZCIsInVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCIsImZpbmRCeUlkQW5kVXBkYXRlIiwiJHNldCIsIm5ldyIsImRlbGV0ZUFUb3VyaXN0QnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUUsY0FBYyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLE1BQUlDLEtB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O0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCK0IsTUFBQUEsUUFBUSxFQUFFRDtBQUEzQixLQUFUO0FBQ0gsR0FMTCxFQUtRN0IsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVM7QUFDWlYsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCRyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNILEdBVkw7QUFXSCxDQVpEOztBQWNBNkIsT0FBTyxDQUFDQyxxQkFBUixHQUFnQ0EscUJBQWhDO0FBQ0FELE9BQU8sQ0FBQ0ssd0JBQVIsR0FBbUNBLHdCQUFuQztBQUNBTCxPQUFPLENBQUNTLGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBUb3VyaXN0cyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG5jb25zdCB1dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzL3V0aWxzJyk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsVG91cmlzdHMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiIH07XHJcbiAgICAvLyB2YXIgb2JqID0gT2JqZWN0LmFzc2lnbihxdWVyeSwgeyAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH0pO1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgfVxyXG5cclxuICAgIHZhciBzb3J0YnkgPSByZXEuYm9keS5zb3J0QnkgfHwge307XHJcbiAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHRvdXJpc3RJZCA9IHJlcS5wYXJhbXMudG91cmlzdElkO1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWQodG91cmlzdElkKVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTsgXHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgXHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnRvdXJpc3RJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gIHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6ICdDb3VsZCBub3QgZmluZCB0b3VyaXN0IHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFUb3VyaXN0QnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy50b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZGVsZXRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcbiJdfQ==\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var error = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while deleting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9e/touristController_9ee6bfceb00c4d02fdcd8e12f129a687.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2546\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23082,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23079,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":954,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":986,\"endOffset\":1675,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1697,\"endOffset\":3064,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2044,\"endOffset\":2819,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2294,\"endOffset\":2803,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":3093,\"endOffset\":3369,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3808,\"endOffset\":4292,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":4328,\"endOffset\":4839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4869,\"endOffset\":5317,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/07/dashboardRouter_0791a49f2f45fc0f57ade98f27175c5c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2547\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/dashboardController_34872bbac017cfae6fcc33926d204118.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2548\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const app = require('../../app');\\n\\nconst server = require(\\\"supertest\\\")(app);\\n\\nconst jwt_decode = require('jwt-decode');\\n\\nconst Users = require('../../models/users');\\n\\nvar userToken;\\nvar assistantToken;\\nvar adminToken;\\nconst admin = {\\n \\\"firstname\\\": \\\"Admin\\\",\\n \\\"lastname\\\": \\\"Admin\\\",\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\n \\\"password\\\": \\\"admin-password\\\"\\n};\\nconst assistant = {\\n \\\"firstname\\\": \\\"Dinesh\\\",\\n \\\"lastname\\\": \\\"Chandimal\\\",\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\n};\\nconst tourist = {\\n \\\"firstname\\\": \\\"Sunil\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\n};\\n\\nconst signupAdmin = async () => {\\n await Users.deleteMany({});\\n await server.post(\\\"/users/signup/admin\\\").send(admin);\\n};\\n\\nconst getAdminToken = async () => {\\n if (adminToken) {\\n return adminToken;\\n }\\n\\n await signupAdmin();\\n var creds = {\\n username: admin.email,\\n password: admin.password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n adminToken = response.body.token;\\n return adminToken;\\n};\\n\\nconst addAssistant = async () => {\\n if (!adminToken) {\\n await getAdminToken();\\n }\\n\\n const response = await server.post(\\\"/employees\\\").set(\\\"Authorization\\\", `Bearer ${adminToken}`).send(assistant).expect(200);\\n return response.body.password;\\n};\\n\\nconst getAssistantToken = async () => {\\n if (assistantToken) {\\n return assistantToken;\\n }\\n\\n const password = await addAssistant();\\n var creds = {\\n username: assistant.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n assistantToken = response.body.token;\\n return assistantToken;\\n};\\n\\nconst addTourist = async () => {\\n if (!assistantToken) {\\n await getAssistantToken();\\n }\\n\\n const response = await server.post(\\\"/tourists\\\").set(\\\"Authorization\\\", `Bearer ${assistantToken}`).send(tourist).expect(200);\\n return response.body.password;\\n};\\n\\nconst getTouristToken = async () => {\\n if (userToken) {\\n return userToken;\\n }\\n\\n const password = await addTourist();\\n var creds = {\\n username: tourist.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n userToken = response.body.token;\\n return userToken;\\n};\\n\\nconst getExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Namal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\n \\\"mobile\\\": \\\"981114844\\\",\\n \\\"rommnumber\\\": \\\"41\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n return tourist._id.toString();\\n};\\n\\nconst getNonExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Kamal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n await tourist.remove();\\n return tourist._id.toString();\\n};\\n\\nconst decodeToken = token => {\\n var decoded = jwt_decode(token);\\n return decoded;\\n};\\n\\nmodule.exports = {\\n getAdminToken,\\n getAssistantToken,\\n getTouristToken,\\n decodeToken,\\n addTourist,\\n getTouristToken,\\n getExistingId,\\n getNonExistingId\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJfaGVscGVyLmpzIl0sIm5hbWVzIjpbImFwcCIsInJlcXVpcmUiLCJzZXJ2ZXIiLCJqd3RfZGVjb2RlIiwiVXNlcnMiLCJ1c2VyVG9rZW4iLCJhc3Npc3RhbnRUb2tlbiIsImFkbWluVG9rZW4iLCJhZG1pbiIsImFzc2lzdGFudCIsInRvdXJpc3QiLCJzaWdudXBBZG1pbiIsImRlbGV0ZU1hbnkiLCJwb3N0Iiwic2VuZCIsImdldEFkbWluVG9rZW4iLCJjcmVkcyIsInVzZXJuYW1lIiwiZW1haWwiLCJwYXNzd29yZCIsInJlc3BvbnNlIiwiYm9keSIsInRva2VuIiwiYWRkQXNzaXN0YW50Iiwic2V0IiwiZXhwZWN0IiwiZ2V0QXNzaXN0YW50VG9rZW4iLCJhZGRUb3VyaXN0IiwiZ2V0VG91cmlzdFRva2VuIiwiZ2V0RXhpc3RpbmdJZCIsIm5ld1RvdXJpc3QiLCJzYXZlIiwiX2lkIiwidG9TdHJpbmciLCJnZXROb25FeGlzdGluZ0lkIiwicmVtb3ZlIiwiZGVjb2RlVG9rZW4iLCJkZWNvZGVkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsV0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxXQUFELENBQVAsQ0FBcUJELEdBQXJCLENBQWY7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHRixPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNRyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxvQkFBRCxDQUFyQjs7QUFFQSxJQUFJSSxTQUFKO0FBQ0EsSUFBSUMsY0FBSjtBQUNBLElBQUlDLFVBQUo7QUFDQSxNQUFNQyxLQUFLLEdBQUc7QUFDVixlQUFhLE9BREg7QUFFVixjQUFZLE9BRkY7QUFHVixXQUFTLGlCQUhDO0FBSVYsY0FBWTtBQUpGLENBQWQ7QUFNQSxNQUFNQyxTQUFTLEdBQUc7QUFDZCxlQUFhLFFBREM7QUFFZCxjQUFZLFdBRkU7QUFHZCxXQUFTO0FB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QyxFQUFBQSxlQUQvRDtBQUNnRkMsRUFBQUEsYUFEaEY7QUFDK0ZLLEVBQUFBO0FBRC9GLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXBwID0gcmVxdWlyZSgnLi4vLi4vYXBwJyk7XHJcbmNvbnN0IHNlcnZlciA9IHJlcXVpcmUoXCJzdXBlcnRlc3RcIikoYXBwKTtcclxuY29uc3Qgand0X2RlY29kZSA9IHJlcXVpcmUoJ2p3dC1kZWNvZGUnKTtcclxuY29uc3QgVXNlcnMgPSByZXF1aXJlKCcuLi8uLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciB1c2VyVG9rZW47XHJcbnZhciBhc3Npc3RhbnRUb2tlbjtcclxudmFyIGFkbWluVG9rZW47XHJcbmNvbnN0IGFkbWluID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJBZG1pblwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkFkbWluXCIsXHJcbiAgICBcImVtYWlsXCI6IFwiYWRtaW5AZ21haWwuY29tXCIsXHJcbiAgICBcInBhc3N3b3JkXCI6IFwiYWRtaW4tcGFzc3dvcmRcIlxyXG59O1xyXG5jb25zdCBhc3Npc3RhbnQgPSB7XHJcbiAgICBcImZpcnN0bmFtZVwiOiBcIkRpbmVzaFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkNoYW5kaW1hbFwiLFxyXG4gICAgXCJlbWFpbFwiOiBcImRpbmVzaGNoYW5kaW1hbEBnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCB0b3VyaXN0ID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJTdW5pbFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkZlcm5hbWRvXCIsXHJcbiAgICBcImVtYWlsXCI6IFwic3VuaWxGZXJuYW1kb0BnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCBzaWdudXBBZG1pbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGF3YWl0IFVzZXJzLmRlbGV0ZU1hbnkoe30pO1xyXG4gICAgYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvdXNlcnMvc2lnbnVwL2FkbWluXCIpXHJcbiAgICAgICAgLnNlbmQoYWRtaW4pO1xyXG59O1xyXG5cclxuY29uc3QgZ2V0QWRtaW5Ub2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhZG1pblRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbiAgICB9XHJcbiAgICBhd2FpdCBzaWdudXBBZG1pbigpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiBhZG1pbi5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogYWRtaW4ucGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFkbWluVG9rZW4gPSByZXNwb25zZS5ib2R5LnRva2VuO1xyXG4gICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGFkZEFzc2lzdGFudCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYWRtaW5Ub2tlbikge1xyXG4gICAgICAgIGF3YWl0IGdldEFkbWluVG9rZW4oKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvZW1wbG95ZWVzXCIpXHJcbiAgICAgICAgLnNldChcIkF1dGhvcml6YXRpb25cIiwgYEJlYXJlciAke2FkbWluVG9rZW59YClcclxuICAgICAgICAuc2VuZChhc3Npc3RhbnQpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRBc3Npc3RhbnRUb2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhc3Npc3RhbnRUb2tlbikge1xyXG4gICAgICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkQXNzaXN0YW50KCk7XHJcbiAgICB2YXIgY3JlZHMgPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IGFzc2lzdGFudC5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogcGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFzc2lzdGFudFRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxufVxyXG5cclxuY29uc3QgYWRkVG91cmlzdCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYXNzaXN0YW50VG9rZW4pIHtcclxuICAgICAgICBhd2FpdCBnZXRBc3Npc3RhbnRUb2tlbigpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi90b3VyaXN0c1wiKVxyXG4gICAgICAgIC5zZXQoXCJBdXRob3JpemF0aW9uXCIsIGBCZWFyZXIgJHthc3Npc3RhbnRUb2tlbn1gKVxyXG4gICAgICAgIC5zZW5kKHRvdXJpc3QpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRUb3VyaXN0VG9rZW4gPSBhc3luYyAoKSA9PiB7XHJcbiAgICBpZiAodXNlclRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIHVzZXJUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkVG91cmlzdCgpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiB0b3VyaXN0LmVtYWlsLFxyXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlcnZlclxyXG4gICAgICAgIC5wb3N0KFwiL3VzZXJzL2xvZ2luXCIpXHJcbiAgICAgICAgLnNlbmQoY3JlZHMpO1xyXG4gICAgdXNlclRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiB1c2VyVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGdldEV4aXN0aW5nSWQgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBuZXdUb3VyaXN0ID0ge1xyXG4gICAgICAgIFwiZmlyc3RuYW1lXCI6IFwiTmFtYWxcIixcclxuICAgICAgICBcImxhc3RuYW1lXCI6IFwiRmVybmFtZG9cIixcclxuICAgICAgICBcImVtYWlsXCI6IFwibmFtYWxmZXJuYW1kb0BnbWFpbC5jb21cIixcclxuICAgICAgICBcIm1vYmlsZVwiOiBcIjk4MTExNDg0NFwiLFxyXG4gICAgICAgIFwicm9tbW51bWJlclwiIDogXCI0MVwiLFxyXG5cclxuICAgIH1cclxuICAgIGNvbnN0IHRvdXJpc3QgPSBuZXcgVXNlcnMobmV3VG91cmlzdCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnNhdmUoKTtcclxuXHJcbiAgICByZXR1cm4gdG91cmlzdC5faWQudG9TdHJpbmcoKTtcclxuXHJcbiAgICBcclxufVxyXG5cclxuY29uc3QgZ2V0Tm9uRXhpc3RpbmdJZCA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1RvdXJpc3QgPSB7XHJcbiAgICAgICAgXCJmaXJzdG5hbWVcIjogXCJLYW1hbFwiLFxyXG4gICAgICAgIFwibGFzdG5hbWVcIjogXCJGZXJuYW1kb1wiLFxyXG4gICAgICAgIFwiZW1haWxcIjogXCJrYW1hbGZlcm5hbWRvQGdtYWlsLmNvbVwiXHJcbiAgICB9XHJcbiAgICBjb25zdCB0b3VyaXN0ID0gbmV3IFVzZXJzKG5ld1RvdXJpc3QpO1xyXG4gICAgYXdhaXQgdG91cmlzdC5zYXZlKCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnJlbW92ZSgpO1xyXG5cclxuICAgIHJldHVybiB0b3VyaXN0Ll9pZC50b1N0cmluZygpO1xyXG59XHJcblxyXG5jb25zdCBkZWNvZGVUb2tlbiA9ICh0b2tlbikgPT4ge1xyXG4gICAgdmFyIGRlY29kZWQgPSBqd3RfZGVjb2RlKHRva2VuKTtcclxuICAgIHJldHVybiBkZWNvZGVkO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGdldEFkbWluVG9rZW4sIGdldEFzc2lzdGFudFRva2VuLCBnZXRUb3VyaXN0VG9rZW4sIGRlY29kZVRva2VuLCBhZGRUb3VyaXN0LCBnZXRUb3VyaXN0VG9rZW4gLGdldEV4aXN0aW5nSWQgLGdldE5vbkV4aXN0aW5nSWRcclxufVxyXG4iXX0=\",\"originalCode\":\"const app = require('../../app');\\r\\nconst server = require(\\\"supertest\\\")(app);\\r\\nconst jwt_decode = require('jwt-decode');\\r\\nconst Users = require('../../models/users');\\r\\n\\r\\nvar userToken;\\r\\nvar assistantToken;\\r\\nvar adminToken;\\r\\nconst admin = {\\r\\n \\\"firstname\\\": \\\"Admin\\\",\\r\\n \\\"lastname\\\": \\\"Admin\\\",\\r\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\r\\n \\\"password\\\": \\\"admin-password\\\"\\r\\n};\\r\\nconst assistant = {\\r\\n \\\"firstname\\\": \\\"Dinesh\\\",\\r\\n \\\"lastname\\\": \\\"Chandimal\\\",\\r\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\r\\n};\\r\\nconst tourist = {\\r\\n \\\"firstname\\\": \\\"Sunil\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\r\\n};\\r\\nconst signupAdmin = async () => {\\r\\n await Users.deleteMany({});\\r\\n await server\\r\\n .post(\\\"/users/signup/admin\\\")\\r\\n .send(admin);\\r\\n};\\r\\n\\r\\nconst getAdminToken = async () => {\\r\\n if (adminToken) {\\r\\n return adminToken;\\r\\n }\\r\\n await signupAdmin();\\r\\n var creds = {\\r\\n username: admin.email,\\r\\n password: admin.password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n adminToken = response.body.token;\\r\\n return adminToken;\\r\\n}\\r\\n\\r\\nconst addAssistant = async () => {\\r\\n if (!adminToken) {\\r\\n await getAdminToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/employees\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${adminToken}`)\\r\\n .send(assistant)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getAssistantToken = async () => {\\r\\n if (assistantToken) {\\r\\n return assistantToken;\\r\\n }\\r\\n const password = await addAssistant();\\r\\n var creds = {\\r\\n username: assistant.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n assistantToken = response.body.token;\\r\\n return assistantToken;\\r\\n}\\r\\n\\r\\nconst addTourist = async () => {\\r\\n if (!assistantToken) {\\r\\n await getAssistantToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/tourists\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${assistantToken}`)\\r\\n .send(tourist)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getTouristToken = async () => {\\r\\n if (userToken) {\\r\\n return userToken;\\r\\n }\\r\\n const password = await addTourist();\\r\\n var creds = {\\r\\n username: tourist.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n userToken = response.body.token;\\r\\n return userToken;\\r\\n}\\r\\n\\r\\nconst getExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Namal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\r\\n \\\"mobile\\\": \\\"981114844\\\",\\r\\n \\\"rommnumber\\\" : \\\"41\\\",\\r\\n\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n\\r\\n return tourist._id.toString();\\r\\n\\r\\n \\r\\n}\\r\\n\\r\\nconst getNonExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Kamal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n await tourist.remove();\\r\\n\\r\\n return tourist._id.toString();\\r\\n}\\r\\n\\r\\nconst decodeToken = (token) => {\\r\\n var decoded = jwt_decode(token);\\r\\n return decoded;\\r\\n}\\r\\n\\r\\nmodule.exports = {\\r\\n getAdminToken, getAssistantToken, getTouristToken, decodeToken, addTourist, getTouristToken ,getExistingId ,getNonExistingId\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/5d/user_helper_5d6019747344ffe72872c6622cdf23b3.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2692\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\user_helper.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13241,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":677,\"endOffset\":778,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"getAdminToken\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1089,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"addAssistant\",\"ranges\":[{\"startOffset\":1113,\"endOffset\":1339,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"getAssistantToken\",\"ranges\":[{\"startOffset\":1368,\"endOffset\":1686,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1708,\"endOffset\":1943,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristToken\",\"ranges\":[{\"startOffset\":1970,\"endOffset\":2264,\"count\":1},{\"startOffset\":2001,\"endOffset\":2028,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"getExistingId\",\"ranges\":[{\"startOffset\":2289,\"endOffset\":2574,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getNonExistingId\",\"ranges\":[{\"startOffset\":2602,\"endOffset\":2862,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"decodeToken\",\"ranges\":[{\"startOffset\":2885,\"endOffset\":2950,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedule = require('../../models/schedules');\\n\\nconst mockSchedule = require('../mockData/schedule.data');\\n\\nconst mongoose = require('mongoose');\\n\\nconst addSchedulesToDb = async id => {\\n const schedules = await mockSchedule(id);\\n const scheduleObjects = schedules.map(schedule => new Schedule(schedule));\\n const promiseArray = scheduleObjects.map(schedule => schedule.save());\\n await Promise.all(promiseArray);\\n};\\n\\nconst getExistingId = async () => {\\n const newSchedule = {\\n \\\"user\\\": mongoose.Types.ObjectId(),\\n \\\"place\\\": mongoose.Types.ObjectId(),\\n \\\"date\\\": Date(),\\n \\\"travellingMethod\\\": 'Car'\\n };\\n const schedule = new Schedule(newSchedule);\\n await schedule.save();\\n return schedule._id.toString();\\n};\\n\\nconst getNonExistingId = async () => {\\n const newSchedule = {\\n \\\"user\\\": mongoose.Types.ObjectId(),\\n \\\"place\\\": mongoose.Types.ObjectId(),\\n \\\"date\\\": Date(),\\n \\\"travellingMethod\\\": 'Car'\\n };\\n const schedule = new Schedule(newSchedule);\\n await schedule.save();\\n await schedule.remove();\\n return schedule._id.toString();\\n};\\n\\nconst schedulesInDb = async () => {\\n const places = await Note.find({});\\n return places;\\n};\\n\\nmodule.exports = {\\n addSchedulesToDb,\\n getExistingId,\\n getNonExistingId,\\n schedulesInDb\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlX2hlbHBlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZSIsInJlcXVpcmUiLCJtb2NrU2NoZWR1bGUiLCJtb25nb29zZSIsImFkZFNjaGVkdWxlc1RvRGIiLCJpZCIsInNjaGVkdWxlcyIsInNjaGVkdWxlT2JqZWN0cyIsIm1hcCIsInNjaGVkdWxlIiwicHJvbWlzZUFycmF5Iiwic2F2ZSIsIlByb21pc2UiLCJhbGwiLCJnZXRFeGlzdGluZ0lkIiwibmV3U2NoZWR1bGUiLCJUeXBlcyIsIk9iamVjdElkIiwiRGF0ZSIsIl9pZCIsInRvU3RyaW5nIiwiZ2V0Tm9uRXhpc3RpbmdJZCIsInJlbW92ZSIsInNjaGVkdWxlc0luRGIiLCJwbGFjZXMiLCJOb3RlIiwiZmluZCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLFFBQVEsR0FBR0MsT0FBTyxDQUFDLHdCQUFELENBQXhCOztBQUNBLE1BQU1DLFlBQVksR0FBR0QsT0FBTyxDQUFDLDJCQUFELENBQTVCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLFVBQUQsQ0FBeEI7O0FBR0EsTUFBTUcsZ0JBQWdCLEdBQUcsTUFBT0MsRUFBUCxJQUFjO0FBQ25DLFFBQU1DLFNBQVMsR0FBRSxNQUFNSixZQUFZLENBQUNHLEVBQUQsQ0FBbkM7QUFDQSxRQUFNRSxlQUFlLEdBQUdELFNBQVMsQ0FDNUJFLEdBRG1CLENBQ2ZDLFFBQVEsSUFBSSxJQUFJVCxRQUFKLENBQWFTLFFBQWIsQ0FERyxDQUF4QjtBQUVBLFFBQU1DLFlBQVksR0FBR0gsZUFBZSxDQUFDQyxHQUFoQixDQUFvQkMsUUFBUSxJQUFJQSxRQUFRLENBQUNFLElBQVQsRUFBaEMsQ0FBckI7QUFDQSxRQUFNQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUgsWUFBWixDQUFOO0FBQ0gsQ0FORDs7QUFRQSxNQUFNSSxhQUFhLEdBQUcsWUFBWTtBQUM5QixRQUFNQyxXQUFXLEdBQUc7QUFDaEIsWUFBUVosUUFBUSxDQUFDYSxLQUFULENBQWVDLFFBQWYsRUFEUTtBQUVoQixhQUFTZCxRQUFRLENBQUNhLEtBQVQsQ0FBZUMsUUFBZixFQUZPO0FBR2hCLFlBQVFDLElBQUksRUFISTtBQUloQix3QkFBb0I7QUFKSixHQUFwQjtBQU9BLFFBQU1ULFFBQVEsR0FBRyxJQUFJVCxRQUFKLENBQWFlLFdBQWIsQ0FBakI7QUFDQSxRQUFNTixRQUFRLENBQUNFLElBQVQsRUFBTjtBQUVBLFNBQU9GLFFBQVEsQ0FBQ1UsR0FBVCxDQUFhQyxRQUFiLEVBQVA7QUFDSCxDQVpEOztBQWNBLE1BQU1DLGdCQUFnQixHQUFHLFlBQVk7QUFDakMsUUFBTU4sV0FBVyxHQUFHO0FBQ2hCLFlBQVFaLFFBQVEsQ0FBQ2EsS0FBVCxDQUFlQyxRQUFmLEVBRFE7QUFFaEIsYUFBU2QsUUFBUSxDQUFDYSxLQUFULENBQWVDLFFBQWYsRUFGTztBQUdoQixZQUFRQyxJQUFJLEVBSEk7QUFJaEIsd0JBQW9CO0FBSkosR0FBcEI7QUFPQSxRQUFNVCxRQUFRLEdBQUcsSUFBSVQsUUFBSixDQUFhZSxXQUFiLENBQWpCO0FBQ0EsUUFBTU4sUUFBUSxDQUFDRSxJQUFULEVBQU47QUFDQSxRQUFNRixRQUFRLENBQUNhLE1BQVQsRUFBTjtBQUVBLFNBQU9iLFFBQVEsQ0FBQ1UsR0FBVCxDQUFhQyxRQUFiLEVBQVA7QUFDSCxDQWJEOztBQWVBLE1BQU1HLGFBQWEsR0FBRyxZQUFZO0FBQzlCLFFBQU1DLE1BQU0sR0FBRyxNQUFNQyxJQUFJLENBQUNDLElBQUwsQ0FBVSxFQUFWLENBQXJCO0FBQ0EsU0FBT0YsTUFBUDtBQUNILENBSEQ7O0FBS0FHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNaeEIsRUFBQUEsZ0JBRFk7QUFDTVUsRUFBQUEsYUFETjtBQUNxQk8sRUFBQUEsZ0JBRHJCO0FBQ3NDRSxFQUFBQTtBQUR0QyxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5jb25zdCBtb2NrU2NoZWR1bGUgPSByZXF1aXJlKCcuLi9tb2NrRGF0YS9zY2hlZHVsZS5kYXRhJyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxuXHJcblxyXG5jb25zdCBhZGRTY2hlZHVsZXNUb0RiID0gYXN5bmMgKGlkKSA9PiB7XHJcbiAgICBjb25zdCBzY2hlZHVsZXM9IGF3YWl0IG1vY2tTY2hlZHVsZShpZCk7XHJcbiAgICBjb25zdCBzY2hlZHVsZU9iamVjdHMgPSBzY2hlZHVsZXNcclxuICAgICAgICAubWFwKHNjaGVkdWxlID0+IG5ldyBTY2hlZHVsZShzY2hlZHVsZSkpO1xyXG4gICAgY29uc3QgcHJvbWlzZUFycmF5ID0gc2NoZWR1bGVPYmplY3RzLm1hcChzY2hlZHVsZSA9PiBzY2hlZHVsZS5zYXZlKCkpO1xyXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZUFycmF5KTtcclxufVxyXG5cclxuY29uc3QgZ2V0RXhpc3RpbmdJZCA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1NjaGVkdWxlID0ge1xyXG4gICAgICAgIFwidXNlclwiOiBtb25nb29zZS5UeXBlcy5PYmplY3RJZCgpLFxyXG4gICAgICAgIFwicGxhY2VcIjogbW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQoKSxcclxuICAgICAgICBcImRhdGVcIjogRGF0ZSgpLFxyXG4gICAgICAgIFwidHJhdmVsbGluZ01ldGhvZFwiOiAnQ2FyJ1xyXG4gICAgXHJcbiAgICB9O1xyXG4gICAgY29uc3Qgc2NoZWR1bGUgPSBuZXcgU2NoZWR1bGUobmV3U2NoZWR1bGUpO1xyXG4gICAgYXdhaXQgc2NoZWR1bGUuc2F2ZSgpO1xyXG5cclxuICAgIHJldHVybiBzY2hlZHVsZS5faWQudG9TdHJpbmcoKTtcclxufVxyXG5cclxuY29uc3QgZ2V0Tm9uRXhpc3RpbmdJZCA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1NjaGVkdWxlID0ge1xyXG4gICAgICAgIFwidXNlclwiOiBtb25nb29zZS5UeXBlcy5PYmplY3RJZCgpLFxyXG4gICAgICAgIFwicGxhY2VcIjogbW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQoKSxcclxuICAgICAgICBcImRhdGVcIjogRGF0ZSgpLFxyXG4gICAgICAgIFwidHJhdmVsbGluZ01ldGhvZFwiOiAnQ2FyJ1xyXG4gICAgXHJcbiAgICB9O1xyXG4gICAgY29uc3Qgc2NoZWR1bGUgPSBuZXcgU2NoZWR1bGUobmV3U2NoZWR1bGUpO1xyXG4gICAgYXdhaXQgc2NoZWR1bGUuc2F2ZSgpO1xyXG4gICAgYXdhaXQgc2NoZWR1bGUucmVtb3ZlKCk7XHJcblxyXG4gICAgcmV0dXJuIHNjaGVkdWxlLl9pZC50b1N0cmluZygpO1xyXG59XHJcblxyXG5jb25zdCBzY2hlZHVsZXNJbkRiID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgcGxhY2VzID0gYXdhaXQgTm90ZS5maW5kKHt9KTtcclxuICAgIHJldHVybiBwbGFjZXM7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG4gICAgIGFkZFNjaGVkdWxlc1RvRGIsIGdldEV4aXN0aW5nSWQsIGdldE5vbkV4aXN0aW5nSWQsc2NoZWR1bGVzSW5EYlxyXG59Il19\",\"originalCode\":\"const Schedule = require('../../models/schedules');\\r\\nconst mockSchedule = require('../mockData/schedule.data');\\r\\nconst mongoose = require('mongoose');\\r\\n\\r\\n\\r\\nconst addSchedulesToDb = async (id) => {\\r\\n const schedules= await mockSchedule(id);\\r\\n const scheduleObjects = schedules\\r\\n .map(schedule => new Schedule(schedule));\\r\\n const promiseArray = scheduleObjects.map(schedule => schedule.save());\\r\\n await Promise.all(promiseArray);\\r\\n}\\r\\n\\r\\nconst getExistingId = async () => {\\r\\n const newSchedule = {\\r\\n \\\"user\\\": mongoose.Types.ObjectId(),\\r\\n \\\"place\\\": mongoose.Types.ObjectId(),\\r\\n \\\"date\\\": Date(),\\r\\n \\\"travellingMethod\\\": 'Car'\\r\\n \\r\\n };\\r\\n const schedule = new Schedule(newSchedule);\\r\\n await schedule.save();\\r\\n\\r\\n return schedule._id.toString();\\r\\n}\\r\\n\\r\\nconst getNonExistingId = async () => {\\r\\n const newSchedule = {\\r\\n \\\"user\\\": mongoose.Types.ObjectId(),\\r\\n \\\"place\\\": mongoose.Types.ObjectId(),\\r\\n \\\"date\\\": Date(),\\r\\n \\\"travellingMethod\\\": 'Car'\\r\\n \\r\\n };\\r\\n const schedule = new Schedule(newSchedule);\\r\\n await schedule.save();\\r\\n await schedule.remove();\\r\\n\\r\\n return schedule._id.toString();\\r\\n}\\r\\n\\r\\nconst schedulesInDb = async () => {\\r\\n const places = await Note.find({});\\r\\n return places;\\r\\n}\\r\\n\\r\\nmodule.exports = {\\r\\n addSchedulesToDb, getExistingId, getNonExistingId,schedulesInDb\\r\\n}\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fd/schedule_helper_fdff53486ff035193f245be6b39c41e9.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2694\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\schedule_helper.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":5724,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":5721,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedulesToDb\",\"ranges\":[{\"startOffset\":266,\"endOffset\":510,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":364,\"endOffset\":398,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":444,\"endOffset\":471,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getExistingId\",\"ranges\":[{\"startOffset\":535,\"endOffset\":813,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getNonExistingId\",\"ranges\":[{\"startOffset\":841,\"endOffset\":1146,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"schedulesInDb\",\"ranges\":[{\"startOffset\":1171,\"endOffset\":1241,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst {\\n getExistingId\\n} = require('../helpers/user_helper');\\n\\nconst schedule = async (id = null) => {\\n return [{\\n \\\"user\\\": mongoose.Types.ObjectId(id),\\n \\\"place\\\": mongoose.Types.ObjectId(),\\n \\\"date\\\": new Date(),\\n \\\"travellingMethod\\\": 'Bus'\\n }];\\n};\\n\\nmodule.exports = schedule;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlLmRhdGEuanMiXSwibmFtZXMiOlsibW9uZ29vc2UiLCJyZXF1aXJlIiwiZ2V0RXhpc3RpbmdJZCIsInNjaGVkdWxlIiwiaWQiLCJUeXBlcyIsIk9iamVjdElkIiwiRGF0ZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBeEI7O0FBQ0EsTUFBTTtBQUFDQyxFQUFBQTtBQUFELElBQWtCRCxPQUFPLENBQUMsd0JBQUQsQ0FBL0I7O0FBRUEsTUFBTUUsUUFBUSxHQUFHLE9BQU1DLEVBQUUsR0FBRyxJQUFYLEtBQWtCO0FBQy9CLFNBQU8sQ0FBQztBQUNKLFlBQVFKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlQyxRQUFmLENBQXdCRixFQUF4QixDQURKO0FBRUosYUFBU0osUUFBUSxDQUFDSyxLQUFULENBQWVDLFFBQWYsRUFGTDtBQUdKLFlBQVEsSUFBSUMsSUFBSixFQUhKO0FBSUosd0JBQW9CO0FBSmhCLEdBQUQsQ0FBUDtBQU9ILENBUkQ7O0FBV0FDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQk4sUUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IHtnZXRFeGlzdGluZ0lkfSA9IHJlcXVpcmUoJy4uL2hlbHBlcnMvdXNlcl9oZWxwZXInKTtcclxuXHJcbmNvbnN0IHNjaGVkdWxlID0gYXN5bmMoaWQgPSBudWxsKT0+e1xyXG4gICAgcmV0dXJuIFt7XHJcbiAgICAgICAgXCJ1c2VyXCI6IG1vbmdvb3NlLlR5cGVzLk9iamVjdElkKGlkKSxcclxuICAgICAgICBcInBsYWNlXCI6IG1vbmdvb3NlLlR5cGVzLk9iamVjdElkKCksXHJcbiAgICAgICAgXCJkYXRlXCI6IG5ldyBEYXRlKCksXHJcbiAgICAgICAgXCJ0cmF2ZWxsaW5nTWV0aG9kXCI6ICdCdXMnXHJcbiAgICBcclxuICAgIH1dO1xyXG59XHJcblxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBzY2hlZHVsZTsiXX0=\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst {getExistingId} = require('../helpers/user_helper');\\r\\n\\r\\nconst schedule = async(id = null)=>{\\r\\n return [{\\r\\n \\\"user\\\": mongoose.Types.ObjectId(id),\\r\\n \\\"place\\\": mongoose.Types.ObjectId(),\\r\\n \\\"date\\\": new Date(),\\r\\n \\\"travellingMethod\\\": 'Bus'\\r\\n \\r\\n }];\\r\\n}\\r\\n\\r\\n\\r\\nmodule.exports = schedule;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/ac/scheduledata_ac56f896a1cf3b724acb9bae429c45f0.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2695\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\mockData\\\\schedule.data.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":1745,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":1742,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"schedule\",\"ranges\":[{\"startOffset\":209,\"endOffset\":386,\"count\":1}],\"isBlockCoverage\":false}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":8,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1614411960635,\"runtime\":2840,\"slow\":false,\"start\":1614411957795},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\tourist-id.test.js\",\"testResults\":[{\"ancestorTitles\":[\"GET /tourists/:touristsId\"],\"duration\":12,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /tourists/:touristsId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /tourists/:touristsId\"],\"duration\":23,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /tourists/:touristsId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"GET /tourists/:touristsId\"],\"duration\":17,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /tourists/:touristsId invalid tourists id - 404\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"invalid tourists id - 404\"},{\"ancestorTitles\":[\"POST /tourists/:touristsId\"],\"duration\":9,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /tourists/:touristsId does not support - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"does not support - 403\"},{\"ancestorTitles\":[\"PUT /tourists/:visitingPlaceId\"],\"duration\":12,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /tourists/:visitingPlaceId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"PUT /tourists/:visitingPlaceId\"],\"duration\":26,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /tourists/:visitingPlaceId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"DELETE /tourists/:visitingPlaceId\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /tourists/:visitingPlaceId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"DELETE /tourists/:visitingPlaceId\"],\"duration\":25,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /tourists/:visitingPlaceId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/01/app_010e21b7416079df77678cc6cb70a530.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nvar upload = require('../controllers/upload');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\", authenticate.verifyUser, upload.UploadUserImage);\\nuserRouter.get('/logout', authenticate.verifyUser, userController.logout);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsInVwbG9hZCIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwiVXBsb2FkVXNlckltYWdlIiwiZ2V0IiwibG9nb3V0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLElBQUlJLE1BQU0sR0FBR0osT0FBTyxDQUFDLHVCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUssRUFBQUE7QUFBRixJQUFrQkwsT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlNLFlBQVksR0FBR04sT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlPLGVBQWUsR0FBR1AsT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlRLGNBQWMsR0FBR1IsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1TLElBQUksR0FBR1QsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1MsR0FBWCxDQUFlUCxVQUFVLENBQUNRLElBQVgsRUFBZjtBQUVBVixVQUFVLENBQUNXLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZixVQUFVLENBQUNnQixJQUFYLENBQWdCLGVBQWhCLEVBQWlDUixJQUFJLENBQUNJLGVBQXRDLEVBQXVETCxjQUFjLENBQUNVLFdBQXRFO0FBRUFqQixVQUFVLENBQUNnQixJQUFYLENBQWdCLFFBQWhCLEVBQTBCUixJQUFJLENBQUNJLGVBQS9CLEVBQWdETCxjQUFjLENBQUNXLEtBQS9EO0FBRUFsQixVQUFVLENBQUNnQixJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBcEIsVUFBVSxDQUFDZ0IsSUFBWCxDQUFnQiwyQkFBaEIsRUFBNENYLFlBQVksQ0FBQ2MsVUFBekQsRUFBcUVoQixNQUFNLENBQUNrQixlQUE1RTtBQUVBckIsVUFBVSxDQUFDc0IsR0FBWCxDQUFlLFNBQWYsRUFBeUJqQixZQUFZLENBQUNjLFVBQXRDLEVBQWtEWixjQUFjLENBQUNnQixNQUFqRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJ6QixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxudmFyIHVwbG9hZCA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3VwbG9hZCcpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG52YXIgdXNlckNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy91c2VyQ29udHJvbGxlcicpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcblxyXG51c2VyUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG51c2VyUm91dGVyLm9wdGlvbnMoJyonLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcblxyXG51c2VyUm91dGVyLnBvc3QoJy9zaWdudXAvYWRtaW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIuc2lnbnVwQWRtaW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvbG9naW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIubG9naW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvY2hhbmdlcGFzc293b3JkLzppZCcsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVzZXJDb250cm9sbGVyLmNoYW5nZVBhc3Nvd29yZCk7XHJcblxyXG51c2VyUm91dGVyLnBvc3QoXCIvdXBkYXRlcHJvZmlsZXBpY3R1cmUvOmlkXCIsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVwbG9hZC5VcGxvYWRVc2VySW1hZ2UpO1xyXG5cclxudXNlclJvdXRlci5nZXQoJy9sb2dvdXQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5sb2dvdXQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nvar upload = require('../controllers/upload');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\",authenticate.verifyUser, upload.UploadUserImage);\\r\\n\\r\\nuserRouter.get('/logout',authenticate.verifyUser, userController.logout);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/a6/userRouter_a6221ff3be20743fe1c0fd1dc9fd8435.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4566,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4563,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":606,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const sharp = require('sharp');\\n\\nconst uid = require('uid');\\n\\nconst fs = require('fs');\\n\\nconst Users = require('../models/users');\\n\\nconst Places = require('../models/visitingPlaces');\\n\\nconst uploadFile = async (req, res) => {\\n try {\\n await upload(req, res);\\n\\n if (req.file == undefined) {\\n return res.send(`You must select a file.`);\\n }\\n\\n return res.send(`File has been uploaded.`);\\n } catch (error) {\\n return res.send(`Error when trying upload image: ${error}`);\\n }\\n};\\n\\nconst UploadUserImage = async (req, res, next) => {\\n try {\\n const user_id = req.params._id;\\n const user = await Users.findById(user_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/userImages/${imageUrl}`;\\n let previousImagePath = `images/userImages/${user.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'profile.png';\\n }\\n\\n user.image = imageUrl;\\n await user.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nconst uploadPlaceImage = async (req, res, next) => {\\n try {\\n const place_id = req.params._id;\\n const user = await Places.findById(place_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/placeImages/${imageUrl}`;\\n let previousImagePath = `images/placeImages/${place.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'image.png';\\n }\\n\\n place.image = imageUrl;\\n await place.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nexports.UploadUserImage = UploadUserImage;\\nexports.uploadFile = uploadFile;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVwbG9hZC5qcyJdLCJuYW1lcyI6WyJzaGFycCIsInJlcXVpcmUiLCJ1aWQiLCJmcyIsIlVzZXJzIiwiUGxhY2VzIiwidXBsb2FkRmlsZSIsInJlcSIsInJlcyIsInVwbG9hZCIsImZpbGUiLCJ1bmRlZmluZWQiLCJzZW5kIiwiZXJyb3IiLCJVcGxvYWRVc2VySW1hZ2UiLCJuZXh0IiwidXNlcl9pZCIsInBhcmFtcyIsIl9pZCIsInVzZXIiLCJmaW5kQnlJZCIsImltYWdlVXJsIiwib3JpZ2luYWxuYW1lIiwiZmlsZW5hbWUiLCJwcmV2aW91c0ltYWdlUGF0aCIsImltYWdlIiwiaW1hZ2VFeGlzdCIsImV4aXN0c1N5bmMiLCJkZWxldGVJbWFnZSIsInBhdGgiLCJyb3RhdGUiLCJyZXNpemUiLCJ0b0ZpbGUiLCJ1bmxpbmsiLCJlcnIiLCJzYXZlIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwibWVzc2FnZSIsInVwbG9hZFBsYWNlSW1hZ2UiLCJwbGFjZV9pZCIsInBsYWNlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsT0FBRCxDQUFyQjs7QUFDQSxNQUFNQyxHQUFHLEdBQUdELE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLElBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsS0FBSyxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBckI7O0FBQ0EsTUFBTUksTUFBTSxHQUFHSixPQUFPLENBQUMsMEJBQUQsQ0FBdEI7O0FBRUEsTUFBTUssVUFBVSxHQUFHLE9BQU9DLEdBQVAsRUFBWUMsR0FBWixLQUFvQjtBQUNuQyxNQUFJO0FBQ0EsVUFBTUMsTUFBTSxDQUFDRixHQUFELEVBQU1DLEdBQU4sQ0FBWjs7QUFFQSxRQUFJRCxHQUFHLENBQUNHLElBQUosSUFBWUMsU0FBaEIsRUFBMkI7QUFDdkIsYUFBT0gsR0FBRyxDQUFDSSxJQUFK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QUFkLEVBQThCLGtCQUE5QjtBQUNBN0IsSUFBQUEsR0FBRyxDQUFDOEIsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCQyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNIO0FBQ0osQ0F6Q0Q7O0FBMkNBSSxPQUFPLENBQUM5QixlQUFSLEdBQTBCQSxlQUExQjtBQUNBOEIsT0FBTyxDQUFDdEMsVUFBUixHQUFxQkEsVUFBckIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzaGFycCA9IHJlcXVpcmUoJ3NoYXJwJyk7XHJcbmNvbnN0IHVpZCA9IHJlcXVpcmUoJ3VpZCcpO1xyXG5jb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XHJcbmNvbnN0IFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFBsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpXHJcblxyXG5jb25zdCB1cGxvYWRGaWxlID0gYXN5bmMgKHJlcSwgcmVzKSA9PiB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHVwbG9hZChyZXEsIHJlcyk7XHJcblxyXG4gICAgICAgIGlmIChyZXEuZmlsZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBZb3UgbXVzdCBzZWxlY3QgYSBmaWxlLmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBGaWxlIGhhcyBiZWVuIHVwbG9hZGVkLmApO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICByZXR1cm4gcmVzLnNlbmQoYEVycm9yIHdoZW4gdHJ5aW5nIHVwbG9hZCBpbWFnZTogJHtlcnJvcn1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IFVwbG9hZFVzZXJJbWFnZSA9IGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBjb25zdCB1c2VyX2lkID0gcmVxLnBhcmFtcy5faWQ7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IGF3YWl0IFVzZXJzLmZpbmRCeUlkKHVzZXJfaWQpO1xyXG5cclxuICAgICAgICBsZXQgaW1hZ2VVcmw7XHJcbiAgICAgICAgaWYgKHJlcS5maWxlKSB7XHJcbiAgICAgICAgICAgIGltYWdlVXJsID0gYCR7dWlkKCl9X18ke3JlcS5maWxlLm9yaWdpbmFsbmFtZX1gO1xyXG4gICAgICAgICAgICBsZXQgZmlsZW5hbWUgPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHtpbWFnZVVybH1gO1xyXG4gICAgICAgICAgICBsZXQgcHJldmlvdXNJbWFnZVBhdGggPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHt1c2VyLmltYWdlfWA7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpbWFnZUV4aXN0ID0gZnMuZXhpc3RzU3luYyhwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIGlmIChpbWFnZUV4aXN0KSB7XHJcbiAgICAgICAgICAgICAgICBkZWxldGVJbWFnZShwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYXdhaXQgc2hhcnAocmVxLmZpbGUucGF0aClcclxuICAgICAgICAgICAgICAgIC5yb3RhdGUoKVxyXG4gICAgICAgICAgICAgICAgLnJlc2l6ZSg1MDAsIDUwMClcclxuICAgICAgICAgICAgICAgIC50b0ZpbGUoZmlsZW5hbWUpO1xyXG5cclxuICAgICAgICAgICAgZnMudW5saW5rKHJlcS5maWxlLnBhdGgsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9ICdwcm9maWxlLnBuZyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1c2VyLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgdXNlci5zYXZlKCk7XHJcblxyXG5cclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1N1Y2Nlc3NmdWxseSB1cGRhdGVkIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcblxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgdXBkYXRpbmcgcHJvZmlsZSBwaWN0dXJlJyB9KTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IHVwbG9hZFBsYWNlSW1hZ2UgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfaWQgPSByZXEucGFyYW1zLl9pZDtcclxuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgUGxhY2VzLmZpbmRCeUlkKHBsYWNlX2lkKTtcclxuXHJcbiAgICAgICAgbGV0IGltYWdlVXJsO1xyXG4gICAgICAgIGlmIChyZXEuZmlsZSkge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9IGAke3VpZCgpfV9fJHtyZXEuZmlsZS5vcmlnaW5hbG5hbWV9YDtcclxuICAgICAgICAgICAgbGV0IGZpbGVuYW1lID0gYGltYWdlcy9wbGFjZUltYWdlcy8ke2ltYWdlVXJsfWA7XHJcbiAgICAgICAgICAgIGxldCBwcmV2aW91c0ltYWdlUGF0aCA9IGBpbWFnZXMvcGxhY2VJbWFnZXMvJHtwbGFjZS5pbWFnZX1gO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaW1hZ2VFeGlzdCA9IGZzLmV4aXN0c1N5bmMocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICBpZiAoaW1hZ2VFeGlzdCkge1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlSW1hZ2UocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGF3YWl0IHNoYXJwKHJlcS5maWxlLnBhdGgpXHJcbiAgICAgICAgICAgICAgICAucm90YXRlKClcclxuICAgICAgICAgICAgICAgIC5yZXNpemUoNTAwLCA1MDApXHJcbiAgICAgICAgICAgICAgICAudG9GaWxlKGZpbGVuYW1lKTtcclxuXHJcbiAgICAgICAgICAgIGZzLnVubGluayhyZXEuZmlsZS5wYXRoLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaW1hZ2VVcmwgPSAnaW1hZ2UucG5nJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBsYWNlLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgcGxhY2Uuc2F2ZSgpO1xyXG5cclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6ICdTdWNjZXNzZnVsbHkgdXBkYXRlZCBwcm9maWxlIHBpY3R1cmUnIH0pO1xyXG5cclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnRzLlVwbG9hZFVzZXJJbWFnZSA9IFVwbG9hZFVzZXJJbWFnZTtcclxuZXhwb3J0cy51cGxvYWRGaWxlID0gdXBsb2FkRmlsZTsiXX0=\",\"originalCode\":\"const sharp = require('sharp');\\r\\nconst uid = require('uid');\\r\\nconst fs = require('fs');\\r\\nconst Users = require('../models/users');\\r\\nconst Places = require('../models/visitingPlaces')\\r\\n\\r\\nconst uploadFile = async (req, res) => {\\r\\n try {\\r\\n await upload(req, res);\\r\\n\\r\\n if (req.file == undefined) {\\r\\n return res.send(`You must select a file.`);\\r\\n }\\r\\n\\r\\n return res.send(`File has been uploaded.`);\\r\\n } catch (error) {\\r\\n return res.send(`Error when trying upload image: ${error}`);\\r\\n }\\r\\n};\\r\\n\\r\\nconst UploadUserImage = async (req, res, next) => {\\r\\n try {\\r\\n const user_id = req.params._id;\\r\\n const user = await Users.findById(user_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/userImages/${imageUrl}`;\\r\\n let previousImagePath = `images/userImages/${user.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'profile.png';\\r\\n }\\r\\n\\r\\n user.image = imageUrl;\\r\\n await user.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nconst uploadPlaceImage = async (req, res, next) => {\\r\\n try {\\r\\n const place_id = req.params._id;\\r\\n const user = await Places.findById(place_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/placeImages/${imageUrl}`;\\r\\n let previousImagePath = `images/placeImages/${place.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'image.png';\\r\\n }\\r\\n\\r\\n place.image = imageUrl;\\r\\n await place.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nexports.UploadUserImage = UploadUserImage;\\r\\nexports.uploadFile = uploadFile;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/70/upload_70c590d2bd713c9562e3916387ba4116.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\upload.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":12791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":12788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"uploadFile\",\"ranges\":[{\"startOffset\":293,\"endOffset\":580,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"UploadUserImage\",\"ranges\":[{\"startOffset\":607,\"endOffset\":1704,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"uploadPlaceImage\",\"ranges\":[{\"startOffset\":1732,\"endOffset\":2835,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fa/users_fa250a82bd410ffb1909f920e93eed19.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2324\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c4/visitingPlaces_c4ccc91c117df8c4aeada72a82534688.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2335\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Moderater Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFBVCxDQUF1Qk4sSUFBSSxDQUFDTSxhQUFMLEVBQXZCO0FBQ0FWLFFBQVEsQ0FBQ1csZUFBVCxDQUF5QlAsSUFBSSxDQUFDTyxlQUFMLEVBQXpCOztBQUVBQyxPQUFPLENBQUNDLFFBQVIsR0FBb0JDLElBQUQsSUFBVTtBQUN6QixTQUFPUCxHQUFHLENBQUNRLElBQUosQ0FBU0QsSUFBVCxFQUFlRSxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsU0FBM0IsRUFDSDtBQUFFQyxJQUFBQSxTQUFTLEVBQUU7QUFBYixHQURHLENBQVA7QUFFSCxDQUhEOztBQUtBLElBQUlDLElBQUksR0FBRyxFQUFYO0FBQ0FBLElBQUksQ0FBQ0MsY0FBTCxHQUFzQmYsVUFBVSxDQUFDZ0IsMkJBQVgsRUFBdEI7QUFDQUYsSUFBSSxDQUFDRyxXQUFMLEdBQW1CUCxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsU0FBL0I7QUFFQU4sT0FBTyxDQUFDWSxXQUFSLEdBQXNCeEIsUUFBUSxDQUFDUSxHQUFULENBQWEsSUFBSUgsV0FBSixDQUFnQmUsSUFBaEIsRUFDL0IsQ0FBQ0ssV0FBRCxFQUFjQyxJQUFkLEtBQXVCO0FBQ25CdEIsRUFBQUEsSUFBSSxDQUFDdUIsT0FBTCxDQUFhO0FBQUVDLElBQUFBLEdBQUcsRUFBRUgsV0FBVyxDQUFDRztBQUFuQixHQUFiLEVBQXVDLENBQUNDLEdBQUQsRUFBTWYsSUFBTixLQUFlO0FBQ2xELFFBQUllLEdBQUosRUFBUztBQUNMLGFBQU9ILElBQUksQ0FBQ0csR0FBRCxFQUFNLEtBQU4sQ0FBWDtBQUNILEtBRkQsTUFHSyxJQUFJZixJQUFKLEVBQVU7QUFDWCxhQUFPWSxJQUFJLENBQUMsSUFBRCxFQUFPWixJQUFQLENBQVg7QUFDSCxLQUZJLE1BR0E7QUFDRCxhQUFPWSxJQUFJLENBQUMsSUFBRCxFQUFPLEtBQVAsQ0FBWDtBQUNIO0FBQ0osR0FWRDtBQVdILENBYjhCLENBQWIsQ0FBdEI7QUFlQWQsT0FBTyxDQUFDa0IsVUFBUixHQUFxQjlCLFFBQVEsQ0FBQ1MsWUFBVCxDQUFzQixLQUF0QixFQUE2QjtBQUFFc0IsRUFBQUEsT0FBTyxFQUFFO0FBQVgsQ0FBN0IsQ0FBckI7O0FBRUFuQixPQUFPLENBQUNvQixXQUFSLEdBQXNCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3RDLE1BQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsT0FBckIsRUFBOEI7QUFDMUIsV0FBT0QsSUFBSSxFQUFYO0FBQ0gsR0FGRCxNQUdLLElBQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsT0FBckIsRUFBOEI7QUFDL0JQLElBQUFBLEdBQUcsR0FBRyxJQUFJUSxLQUFKLENBQVUsbURBQVYsQ0FBTjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLE1BQUosR0FBYSxHQUFiO0FBQ0EsV0FBT0gsSUFBSSxDQUFDTixHQUFELENBQVg7QUFDSCxHQUpJLE1BS0E7QUFDREEsSUFBQUEsR0FBRyxHQUFHLElBQUlRLEtBQUosQ0FBVSw0QkFBVixDQUFOO0FBQ0FSLElBQUFBLEdBQUcsQ0FBQ1MsTUFBSixHQUFhLEdBQWI7QUFDQSxXQUFPSCxJQUFJLENBQUNOLEdBQUQsQ0FBWDtBQUNIO0FBQ0osQ0FkRDs7QUFnQkFqQixPQUFPLENBQUMyQixlQUFSLEdBQTBCLENBQUNOLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQzFDLE1BQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsTUFBckIsRUFBNkI7QUFDekIsV0FBT0QsSUFBSSxFQUFYO0FBQ0gsR0FGRCxNQUdLLElBQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsTUFBckIsRUFBNkI7QUFDOUJQLElBQUFBLEdBQUcsR0FBRyxJQUFJUSxLQUFKLENBQVUsbURBQVYsQ0FBTjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLE1BQUosR0FBYSxHQUFiO0FBQ0EsV0FBT0gsSUFBSSxDQUFDTixHQUFELENBQVg7QUFDSCxHQUpJLE1BS0E7QUFDREEsSUFBQUEsR0FBRyxHQUFHLElBQUlRLEtBQUosQ0FBVSxnQ0FBVixDQUFOO0FBQ0FSLElBQUFBLEdBQUcsQ0FBQ1MsTUFBSixHQUFhLEdBQWI7QUFDQSxXQUFPSCxJQUFJLENBQUNOLEdBQUQsQ0FBWDtBQUNIO0FBQ0osQ0FkRCIsInNvdXJjZXNDb250ZW50IjpbInZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBMb2NhbFN0cmF0ZWd5ID0gcmVxdWlyZSgncGFzc3BvcnQtbG9jYWwnKS5TdHJhdGVneTtcclxudmFyIFVzZXIgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciBKd3RTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLlN0cmF0ZWd5O1xyXG52YXIgRXh0cmFjdEp3dCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLkV4dHJhY3RKd3Q7XHJcbnZhciBqd3QgPSByZXF1aXJlKCdqc29ud2VidG9rZW4nKTtcclxuXHJcblxyXG5wYXNzcG9ydC51c2UobmV3IExvY2FsU3RyYXRlZ3koVXNlci5hdXRoZW50aWNhdGUoKSkpO1xyXG5wYXNzcG9ydC5zZXJpYWxpemVVc2VyKFVzZXIuc2VyaWFsaXplVXNlcigpKTtcclxucGFzc3BvcnQuZGVzZXJpYWxpemVVc2VyKFVzZXIuZGVzZXJpYWxpemVVc2VyKCkpO1xyXG5cclxuZXhwb3J0cy5nZXRUb2tlbiA9ICh1c2VyKSA9PiB7XHJcbiAgICByZXR1cm4gand0LnNpZ24odXNlciwgcHJvY2Vzcy5lbnYuc2VjcmV0S2V5LFxyXG4gICAgICAgIHsgZXhwaXJlc0luOiAzNjAwIH0pO1xyXG59O1xyXG5cclxudmFyIG9wdHMgPSB7fTtcclxub3B0cy5qd3RGcm9tUmVxdWVzdCA9IEV4dHJhY3RKd3QuZnJvbUF1dGhIZWFkZXJBc0JlYXJlclRva2VuKCk7XHJcbm9wdHMuc2VjcmV0T3JLZXkgPSBwcm9jZXNzLmVudi5zZWNyZXRLZXk7XHJcblxyXG5leHBvcnRzLmp3dFBhc3Nwb3J0ID0gcGFzc3BvcnQudXNlKG5ldyBKd3RTdHJhdGVneShvcHRzLFxyXG4gICAgKGp3dF9wYXlsb2FkLCBkb25lKSA9PiB7XHJcbiAgICAgICAgVXNlci5maW5kT25lKHsgX2lkOiBqd3RfcGF5bG9hZC5faWQgfSwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShlcnIsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCB1c2VyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkb25lKG51bGwsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSkpO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlVc2VyID0gcGFzc3BvcnQuYXV0aGVudGljYXRlKCdqd3QnLCB7IHNlc3Npb246IGZhbHNlIH0pO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ2FkbWluJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlICE9ICdhZG1pbicpIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ0FkbWluIFZlcmlmaWNhdGlvbiBGYWlsZWQhJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDUwMDtcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnZlcmlmeU1vZGVyYXRlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgIT0gJ3VzZXInKSB7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdNb2RlcmF0ZXIgVmVyaWZpY2F0aW9uIEZhaWxlZCEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNTAwO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuIl19\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Moderater Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/83/authenticate_83ba38785e68b531d6a7c8378dfee9c9.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2336\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8642,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8639,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":6}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":6}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1871,\"count\":3}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4b/validation_4b7a8ff68e044daa8c6daa8312a761dc.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2369\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(newPasswordString, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, function (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating Password'\\n });\\n });\\n};\\n\\nconst logout = (req, res) => {\\n if (req.session) {\\n req.session.destroy();\\n res.clearCookie('session-id');\\n } else {\\n var err = new Error('You are not logged in!');\\n err.status = 403;\\n }\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.logout = logout;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsImZpbmRCeUlkIiwidGhlbiIsInNhbml0aXplZFVzZXIiLCJzZXRQYXNzd29yZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwibWVzc2FnZSIsImxvZ291dCIsInNlc3Npb24iLCJkZXN0cm95IiwiY2xlYXJDb29raWUiLCJFcnJvciIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBckI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBYjs7QUFFQSxJQUFJQyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxpQkFBRCxDQUFuQjs7QUFDQSxJQUFJSSxRQUFRLEdBQUdKLE9BQU8sQ0FBQyxVQUFELENBQXRCOztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUdBLE1BQU1NLFdBQVcsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUNwQyxNQUFJQyxLQUFLLEdBQUc7QUFDUkMsSUFBQUEsUUFBUSxFQUFFSixHQUFHLENBQUNLLElBQUos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LEdBQWlCLEdBQWpCO0FBQ0FiLElBQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLElBQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCa0IsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQWpCRDtBQWtCSCxDQXBCRDs7QUFzQkEsTUFBTUMsTUFBTSxHQUFHLENBQUNwQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUN6QixNQUFJRCxHQUFHLENBQUNxQyxPQUFSLEVBQWlCO0FBQ2JyQyxJQUFBQSxHQUFHLENBQUNxQyxPQUFKLENBQVlDLE9BQVo7QUFDQXJDLElBQUFBLEdBQUcsQ0FBQ3NDLFdBQUosQ0FBZ0IsWUFBaEI7QUFDSCxHQUhELE1BSUs7QUFDRCxRQUFJM0IsR0FBRyxHQUFHLElBQUk0QixLQUFKLENBQVUsd0JBQVYsQ0FBVjtBQUNBNUIsSUFBQUEsR0FBRyxDQUFDTSxNQUFKLEdBQWEsR0FBYjtBQUNIO0FBQ0osQ0FURDs7QUFXQXVCLE9BQU8sQ0FBQzFDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0EwQyxPQUFPLENBQUNyQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBcUIsT0FBTyxDQUFDTCxNQUFSLEdBQWlCQSxNQUFqQjtBQUNBSyxPQUFPLENBQUNmLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbnZhciByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxudmFyIFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG5cclxuXHJcbmNvbnN0IHNpZ251cEFkbWluID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgYWRtaW4gPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIGZpcnN0bmFtZTogcmVxLmJvZHkuZmlyc3RuYW1lLFxyXG4gICAgICAgIGxhc3RuYW1lOiByZXEuYm9keS5sYXN0bmFtZSxcclxuICAgICAgICBlbWFpbDogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgcm9sZTogJ2FkbWluJ1xyXG4gICAgfVxyXG4gICAgVXNlcnMucmVnaXN0ZXIobmV3IFVzZXJzKGFkbWluKSxcclxuICAgICAgICByZXEuYm9keS5wYXNzd29yZCwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gVW5zdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVxLmJvZHkuZmlyc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIuZmlyc3RuYW1lID0gcmVxLmJvZHkuZmlyc3RuYW1lO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5Lmxhc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIubGFzdG5hbWUgPSByZXEuYm9keS5sYXN0bmFtZTtcclxuICAgICAgICAgICAgICAgIHVzZXIuc2F2ZSgoZXJyLCB1c2VyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHN0YXR1czogJ1JlZ2lzdHJhdGlvbiBTdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dpbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgcGFzc3BvcnQuYXV0aGVudGljYXRlKCdsb2NhbCcsIChlcnIsIHVzZXIsIGluZm8pID0+IHtcclxuXHJcbiAgICAgICAgaWYgKCF1c2VyKSB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAxO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdMb2dpbiBVbnN1Y2Nlc3NmdWwhJywgZXJyOiBpbmZvIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXEubG9nSW4odXNlciwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB2YXIgdG9rZW4gPSBhdXRoZW50aWNhdGUuZ2V0VG9rZW4oeyBfaWQ6IHJlcS51c2VyLl9pZCwgcm9sZTogdXNlci5yb2xlIH0pO1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdMb2dpbiBTdWNjZXNzZnVsIScsIHRva2VuOiB0b2tlbiwgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KShyZXEsIHJlcywgbmV4dCk7XHJcbn1cclxuXHJcbmNvbnN0IGNoYW5nZVBhc3Nvd29yZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHVzZXJJZCA9IHJlcS5wYXJhbXMuaWQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKG5ld1Bhc3N3b3JkU3RyaW5nLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ3Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgZnVuY3Rpb24gKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIFBhc3N3b3JkJyB9KTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dvdXQgPSAocmVxLCByZXMpID0+IHtcclxuICAgIGlmIChyZXEuc2Vzc2lvbikge1xyXG4gICAgICAgIHJlcS5zZXNzaW9uLmRlc3Ryb3koKTtcclxuICAgICAgICByZXMuY2xlYXJDb29raWUoJ3Nlc3Npb24taWQnKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGxvZ2dlZCBpbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5sb2dvdXQgPSBsb2dvdXQ7XHJcbmV4cG9ydHMuY2hhbmdlUGFzc293b3JkID0gY2hhbmdlUGFzc293b3JkOyJdfQ==\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(newPasswordString, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, function (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating Password' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst logout = (req, res) => {\\r\\n if (req.session) {\\r\\n req.session.destroy();\\r\\n res.clearCookie('session-id');\\r\\n }\\r\\n else {\\r\\n var err = new Error('You are not logged in!');\\r\\n err.status = 403;\\r\\n }\\r\\n}\\r\\n\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.logout = logout;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1b/userController_1b7f9872a721ffd88b6634cf95f37bee.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2370\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13343,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13340,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2707,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"logout\",\"ranges\":[{\"startOffset\":2725,\"endOffset\":2913,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/cors_34beef0e65d7cfb3f2bb7a05fb9de802.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2371\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":10}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/3b/employeeRouter_3bb83cd3174a28ed34e0f44c133b9b42.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2372\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n throw err;\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n throw err;\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while deletting.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsImZpcnN0bmFtZSIsIiRyZWdleCIsIiRvcHRpb25zIiwic29ydGJ5Iiwic29ydEJ5Iiwic29ydCIsImFkZEVtcGxveWVlIiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJlbXBsb3llZSIsInVzZXJuYW1lIiwiZW1haWwiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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QUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFRixHQUFHLENBQUNFO0FBQS9CLEtBQVQ7QUFDSCxHQVhMO0FBWUgsQ0FiRDs7QUFlQTJCLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNLLHlCQUFSLEdBQW9DQSx5QkFBcEM7QUFDQUwsT0FBTyxDQUFDUyxtQkFBUixHQUE4QkEsbUJBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRW1wbG95ZWVzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMvdXRpbHMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBnZXQgZGV0YWlscyBvZiB0aGUgYXNzaXN0YW50c1xyXG4gKiBAcGFyYW0geyp9IHJlcSBcclxuICogQHBhcmFtIHsqfSByZXMgXHJcbiAqIEBwYXJhbSB7Kn0gbmV4dCBcclxuICogQHJldHVybnMge2FycmF5fSBsaXN0IG9mIGVtcGxveWVlc1xyXG4gKi9cclxuY29uc3QgZ2V0QWxsRW1wbG95ZWVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH07XHJcbiAgICBFbXBsb3llZXMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbEVtcGxveWVlc0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9O1xyXG4gICAgLy8gaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgLy8gICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgLy8gICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9XHJcbiAgICAvLyB9XHJcbiAgICBpZiAocmVxLmJvZHkuc2ltaWxhclRvKSB7XHJcbiAgICAgICAgdmFyIHNlYXJjaEJ5ID0gcmVxLmJvZHkuc2ltaWxhclRvIHx8IHt9XHJcbiAgICAgICAgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiLCBmaXJzdG5hbWU6IHsgJHJlZ2V4OiBgJHtzZWFyY2hCeX1gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgRW1wbG95ZWVzLmZpbmQocXVlcnkpLnNvcnQoc29ydGJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZ2V0dGluZyBkYXRhJyB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGVtcGxveWVlLnNhdmUoKGVyciwgZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtYWlsOiBlbXBsb3llZS5lbWFpbCwgcGFzc3dvcmQ6IHJhbmRvbVBhc3N3b3JkIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIEVtcGxveWVlcy5yZW1vdmUoeyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzID0gZ2V0QWxsRW1wbG95ZWVzO1xyXG5leHBvcnRzLmdldEFsbEVtcGxveWVlc0J5TmFtZSA9IGdldEFsbEVtcGxveWVlc0J5TmFtZTtcclxuZXhwb3J0cy5hZGRFbXBsb3llZSA9IGFkZEVtcGxveWVlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbEVtcGxveWVlcyA9IGRlbGV0ZUFsbEVtcGxveWVlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigoZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWU6IGVtcGxveWVlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGVtcGxveWVlID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdtb2RlcmF0ZXInXHJcbiAgICB9XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5lbXBsb3llZUlkLCB7XHJcbiAgICAgICAgJHNldDogZW1wbG95ZWVcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlOiBlbXBsb3llZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHVwZGF0aW5nLlwiKTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBRW1wbG95ZWVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIGRlbGV0dGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRFbXBsb3llZURldGFpbHNCeUlkID0gZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVFbXBsb3llZURldGFpbHNCeUlkID0gdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBRW1wbG95ZWVCeUlkID0gZGVsZXRlQUVtcGxveWVlQnlJZDsiXX0=\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while deletting.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4c/employeeController_4c102fe7873f734bd5117d404757cd9d.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2373\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22614,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22611,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":1053,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":1086,\"endOffset\":1976,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1999,\"endOffset\":2993,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2326,\"endOffset\":2750,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2420,\"endOffset\":2734,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3023,\"endOffset\":3260,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3709,\"endOffset\":3993,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4030,\"endOffset\":4740,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4771,\"endOffset\":5211,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const multer = require('multer');\\n\\nconst {\\n v4: uuidv4\\n} = require('uuid');\\n\\nlet path = require('path');\\n\\nconst storage = multer.diskStorage({\\n destination: function (req, file, cb) {\\n cb(null, 'images');\\n },\\n filename: function (req, file, cb) {\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\n }\\n});\\n\\nconst fileFilter = (req, file, cb) => {\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\n\\n if (allowedFileTypes.includes(file.mimetype)) {\\n cb(null, true);\\n } else {\\n cb(null, false);\\n }\\n};\\n\\nlet upload = multer({\\n storage,\\n fileFilter\\n});\\nexports.upload = upload;\\n\\nconst password_generator = len => {\\n var length = len ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbIm11bHRlciIsInJlcXVpcmUiLCJ2NCIsInV1aWR2NCIsInBhdGgiLCJzdG9yYWdlIiwiZGlza1N0b3JhZ2UiLCJkZXN0aW5hdGlvbiIsInJlcSIsImZpbGUiLCJjYiIsImZpbGVuYW1lIiwiRGF0ZSIsIm5vdyIsImV4dG5hbWUiLCJvcmlnaW5hbG5hbWUiLCJmaWxlRmlsdGVyIiwiYWxsb3dlZEZpbGVUeXBlcyIsImluY2x1ZGVzIiwibWltZXR5cGUiLCJ1cGxvYWQiLCJleHBvcnRzIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwibGVuIiwibGVuZ3RoIiwic3RyaW5nIiwibnVtZXJpYyIsInB1bmN0dWF0aW9uIiwicGFzc3dvcmQiLCJjaGFyYWN0ZXIiLCJjcnVuY2giLCJlbnRpdHkxIiwiTWF0aCIsImNlaWwiLCJyYW5kb20iLCJlbnRpdHkyIiwiZW50aXR5MyIsImhvbGQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNwbGl0Iiwic29ydCIsImpvaW4iLCJzdWJzdHIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxFQUFFLEVBQUVDO0FBQU4sSUFBaUJGLE9BQU8sQ0FBQyxNQUFELENBQTlCOztBQUNBLElBQUlHLElBQUksR0FBR0gsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBQ0EsTUFBTUksT0FBTyxHQUFHTCxNQUFNLENBQUNNLFdBQVAsQ0FBbUI7QUFDL0JDLEVBQUFBLFdBQVcsRUFBRSxVQUFVQyxHQUFWLEVBQWVDLElBQWYsRUFBcUJDLEVBQXJCLEVBQXlCO0FBQ2xDQSxJQUFBQSxFQUFFLENBQUMsSUFBRCxFQUFPLFFBQVAsQ0FBRjtBQUNILEdBSDhCO0FBSS9CQyxFQUFBQSxRQUFRLEVBQUUsVUFBVUgsR0FBVixFQUFlQyxJQUFmLEVBQXFCQyxFQUFyQixFQUF5QjtBQUMvQkEsSUFBQUEsRUFBRSxDQUFDLElBQUQs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LGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtdWx0ZXIgPSByZXF1aXJlKCdtdWx0ZXInKTtcclxuY29uc3QgeyB2NDogdXVpZHY0IH0gPSByZXF1aXJlKCd1dWlkJyk7XHJcbmxldCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xyXG5jb25zdCBzdG9yYWdlID0gbXVsdGVyLmRpc2tTdG9yYWdlKHtcclxuICAgIGRlc3RpbmF0aW9uOiBmdW5jdGlvbiAocmVxLCBmaWxlLCBjYikge1xyXG4gICAgICAgIGNiKG51bGwsICdpbWFnZXMnKTtcclxuICAgIH0sXHJcbiAgICBmaWxlbmFtZTogZnVuY3Rpb24gKHJlcSwgZmlsZSwgY2IpIHtcclxuICAgICAgICBjYihudWxsLCB1dWlkdjQoKSArICctJyArIERhdGUubm93KCkgKyBwYXRoLmV4dG5hbWUoZmlsZS5vcmlnaW5hbG5hbWUpKTtcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBmaWxlRmlsdGVyID0gKHJlcSwgZmlsZSwgY2IpID0+IHtcclxuICAgIGNvbnN0IGFsbG93ZWRGaWxlVHlwZXMgPSBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL3BuZyddO1xyXG4gICAgaWYgKGFsbG93ZWRGaWxlVHlwZXMuaW5jbHVkZXMoZmlsZS5taW1ldHlwZSkpIHtcclxuICAgICAgICBjYihudWxsLCB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2IobnVsbCwgZmFsc2UpO1xyXG4gICAgfVxyXG59XHJcblxyXG5sZXQgdXBsb2FkID0gbXVsdGVyKHsgc3RvcmFnZSwgZmlsZUZpbHRlciB9KTtcclxuXHJcbmV4cG9ydHMudXBsb2FkID0gdXBsb2FkO1xyXG5cclxuY29uc3QgcGFzc3dvcmRfZ2VuZXJhdG9yID0gKGxlbikgPT4ge1xyXG4gICAgdmFyIGxlbmd0aCA9IChsZW4pID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfH17W11cXDo7Pz48LC4vLT0nO1xyXG4gICAgdmFyIHBhc3N3b3JkID0gXCJcIjtcclxuICAgIHZhciBjaGFyYWN0ZXIgPSBcIlwiO1xyXG4gICAgdmFyIGNydW5jaCA9IHRydWU7XHJcbiAgICB3aGlsZSAocGFzc3dvcmQubGVuZ3RoIDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgZW50aXR5MSA9IE1hdGguY2VpbChzdHJpbmcubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTIgPSBNYXRoLmNlaWwobnVtZXJpYy5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgZW50aXR5MyA9IE1hdGguY2VpbChwdW5jdHVhdGlvbi5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgaG9sZCA9IHN0cmluZy5jaGFyQXQoZW50aXR5MSk7XHJcbiAgICAgICAgaG9sZCA9IChwYXNzd29yZC5sZW5ndGggJSAyID09IDApID8gKGhvbGQudG9VcHBlckNhc2UoKSkgOiAoaG9sZCk7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IGhvbGQ7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IG51bWVyaWMuY2hhckF0KGVudGl0eTIpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBwdW5jdHVhdGlvbi5jaGFyQXQoZW50aXR5Myk7XHJcbiAgICAgICAgcGFzc3dvcmQgPSBjaGFyYWN0ZXI7XHJcbiAgICB9XHJcbiAgICBwYXNzd29yZCA9IHBhc3N3b3JkLnNwbGl0KCcnKS5zb3J0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAuNSAtIE1hdGgucmFuZG9tKCkgfSkuam9pbignJyk7XHJcbiAgICByZXR1cm4gcGFzc3dvcmQuc3Vic3RyKDAsIGxlbmd0aCk7XHJcbn1cclxuXHJcbmV4cG9ydHMucGFzc3dvcmRfZ2VuZXJhdG9yID0gcGFzc3dvcmRfZ2VuZXJhdG9yOyJdfQ==\",\"originalCode\":\"const multer = require('multer');\\r\\nconst { v4: uuidv4 } = require('uuid');\\r\\nlet path = require('path');\\r\\nconst storage = multer.diskStorage({\\r\\n destination: function (req, file, cb) {\\r\\n cb(null, 'images');\\r\\n },\\r\\n filename: function (req, file, cb) {\\r\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\r\\n }\\r\\n});\\r\\n\\r\\nconst fileFilter = (req, file, cb) => {\\r\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\r\\n if (allowedFileTypes.includes(file.mimetype)) {\\r\\n cb(null, true);\\r\\n } else {\\r\\n cb(null, false);\\r\\n }\\r\\n}\\r\\n\\r\\nlet upload = multer({ storage, fileFilter });\\r\\n\\r\\nexports.upload = upload;\\r\\n\\r\\nconst password_generator = (len) => {\\r\\n var length = (len) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/f3/utils_f37ac8376b54b6ced952605900298d07.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2374\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":7861,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":7858,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"destination\",\"ranges\":[{\"startOffset\":248,\"endOffset\":302,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"filename\",\"ranges\":[{\"startOffset\":316,\"endOffset\":423,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"fileFilter\",\"ranges\":[{\"startOffset\":448,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":752,\"endOffset\":1636,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1537,\"endOffset\":1586,\"count\":58}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9d/placeRouter_9d9aca2c41f2c1b6283bdacdd67537b2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2415\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/ee/placeController_ee3a20e34d4d356553af723b6f7f6a6e.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2416\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwidmVyaWZ5TW9kZXJhdGVyIiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNB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T0FBUCxHQUFpQjlCLGNBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHNjaGVkdWxlQ29udHJvbGxlciA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3NjaGVkdWxlQ29udHJvbGxlcicpXHJcblxyXG5jb25zdCBzY2hlZHVsZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgUm91dGVzXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnLycpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeU1vZGVyYXRlciwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlQWxsU2NoZWR1bGVzKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBSb3V0ZXMgT24gSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvOnNjaGVkdWxlSWQnKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgc2NoZWR1bGVDb250cm9sbGVyLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvc2NoZWR1bGVzLycgKyByZXEucGFyYW1zLnNjaGVkdWxlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIudXBkYXRlU2NoZWR1bGVCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgc2NoZWR1bGVDb250cm9sbGVyLmRlbGV0ZVNjaGVkdWxlQnlJZCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnL3VzZXIvOnVzZXJJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAgc2NoZWR1bGVDb250cm9sbGVyLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gc2NoZWR1bGVSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9b/scheduleRouter_9b57edc7078385d142c957dea9d9e0be.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2417\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9621,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9618,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1085,\"endOffset\":1188,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1621,\"endOffset\":1661,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1824,\"endOffset\":1953,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2288,\"endOffset\":2328,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to add a schedule\\\"\\n });\\n });\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Update failed\\\"\\n });\\n });\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Delete failed\\\"\\n });\\n });\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwibXNnIiwiX21lc3NhZ2UiLCJhZGRTY2hlZHVsZSIsInNjaGVkdWxlIiwidXNlciIsImJvZHkiLCJwbGFjZSIsImRhdGUiLCJzdGF0ZSIsInRyYXZlbGxpbmdNZXRob2QiLCJjcmVhdGUiLCJkZWxldGVBbGxTY2hlZHVsZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInNjaGVkdWxlSWQiLCJ1cGRhdGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxxQkFBRCxDQUF6QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3hDTCxFQUFBQSxTQUFTLENBQUNNLElBQVYsQ0FBZUgsR0FBRyxDQUFDSSxLQUFuQixFQUEwQkMsUUFBMUIsQ0FBbUMsT0FBbkMsRUFBNENBLFFBQTVDLENBQXFELE1BQXJELEVBQ0tDLElBREwsQ0FDV0MsU0FBRCxJQUFlO0FBQ2pCTixJQUFBQSxHQUFHLENBQUNPLFVBQUosR0FBaUIs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Q1cwQixJQUFELElBQVU7QUFDWi9CLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQmdDLE1BQUFBLFFBQVEsRUFBQ1g7QUFBMUIsS0FBVDtBQUNILEdBTEwsRUFLUXBCLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTO0FBQ1pYLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQVZMO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gZ2V0IGRhdGFcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJ1c2VyXCI6IFN0cmluZyhyZXEucGFyYW1zLnVzZXJJZCkgfTtcclxuICAgIFNjaGVkdWxlcy5maW5kKHF1ZXJ5KS5wb3B1bGF0ZShcInBsYWNlXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+ICB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICBjb25zdCBtc2cgPSBlcnIuX21lc3NhZ2U7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IG1zZyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkZhaWxlZCB0byBnZXQgZGF0YVwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBhZGRTY2hlZHVsZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHNjaGVkdWxlID0ge1xyXG4gICAgICAgIHVzZXI6IHJlcS5ib2R5LnVzZXIsXHJcbiAgICAgICAgcGxhY2U6IHJlcS5ib2R5LnBsYWNlLFxyXG4gICAgICAgIGRhdGU6IHJlcS5ib2R5LmRhdGUsXHJcbiAgICAgICAgc3RhdGU6IFwibmV3XCIsXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZDogcmVxLmJvZHkudHJhdmVsbGluZ01ldGhvZFxyXG4gICAgfVxyXG4gICAgU2NoZWR1bGVzLmNyZWF0ZShzY2hlZHVsZSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6c2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgY29uc3QgbXNnID0gZXJyLl9tZXNzYWdlO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBtc2cgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gYWRkIGEgc2NoZWR1bGVcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzID0gZ2V0QWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmFkZFNjaGVkdWxlID0gYWRkU2NoZWR1bGU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsU2NoZWR1bGVzID0gZGVsZXRlQWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyID0gZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXI7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlOnNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBwbGFjZVwiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgU2NoZWR1bGVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuc2NoZWR1bGVJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTpzY2hlZHVsZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiVXBkYXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6cmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiRGVsZXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnRzLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSBnZXRTY2hlZHVsZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVNjaGVkdWxlQnlJZCA9IHVwZGF0ZVNjaGVkdWxlQnlJZDtcclxuZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5SWQgPSBkZWxldGVTY2hlZHVsZUJ5SWQ7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgVXNlcklEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vLyBjb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4vLyAgICAgU2NoZWR1bGVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuc2NoZWR1bGVJZClcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuLy8gICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4vLyAgICAgfSwgeyBuZXc6IHRydWUgfSlcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IGRlbGV0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4vLyAgICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuLy8gICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxuLy8gfSJdfQ==\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to add a schedule\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Update failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response:resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Delete failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1e/scheduleController_1ed35fc0c47927fadcf3cf43433b4df6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2542\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":846,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":881,\"endOffset\":1554,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1577,\"endOffset\":2348,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2378,\"endOffset\":2588,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":3041,\"endOffset\":3489,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3519,\"endOffset\":4012,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":4042,\"endOffset\":4480,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/e2/schedules_e2f8e79bc28961f4db3736c92d490e47.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2543\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0a/touristRouter_0ad938586662daadc81c6cb1ad2e0f53.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2545\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":1}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var error = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while deleting data'\\n });\\n });\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJtZXNzYWdlIiwiZ2V0QWxsVG91cmlzdHNCeU5hbWUiLCJib2R5Iiwic2ltaWxhclRvIiwic2VhcmNoQnkiLCIkdGV4dCIsIiRzZWFyY2giLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkVG91cmlzdCIsInJhbmRvbVBhc3N3b3JkIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwidG91cmlzdCIsInVzZXJuYW1lIiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsIm1vYmlsZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxUb3VyaXN0cyIsInJlbW92ZSIsInJlc3AiLCJyZXNwb25zZSIsImV4cG9ydHMiLCJnZXRUb3VyaXN0RGV0YWlsc0J5SWQiLCJ0b3VyaXN0SWQiLCJwYXJhbXMiLCJmaW5kQnlJZCIsInVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCIsImZpbmRCeUlkQW5kVXBkYXRlIiwiJHNldCIsIm5ldyIsImRlbGV0ZUFUb3VyaXN0QnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUUsY0FBYyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLE1BQUlDLEtB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O0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCK0IsTUFBQUEsUUFBUSxFQUFFRDtBQUEzQixLQUFUO0FBQ0gsR0FMTCxFQUtRN0IsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVM7QUFDWlYsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCRyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNILEdBVkw7QUFXSCxDQVpEOztBQWNBNkIsT0FBTyxDQUFDQyxxQkFBUixHQUFnQ0EscUJBQWhDO0FBQ0FELE9BQU8sQ0FBQ0ssd0JBQVIsR0FBbUNBLHdCQUFuQztBQUNBTCxPQUFPLENBQUNTLGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBUb3VyaXN0cyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG5jb25zdCB1dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzL3V0aWxzJyk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsVG91cmlzdHMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiIH07XHJcbiAgICAvLyB2YXIgb2JqID0gT2JqZWN0LmFzc2lnbihxdWVyeSwgeyAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH0pO1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgfVxyXG5cclxuICAgIHZhciBzb3J0YnkgPSByZXEuYm9keS5zb3J0QnkgfHwge307XHJcbiAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHRvdXJpc3RJZCA9IHJlcS5wYXJhbXMudG91cmlzdElkO1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWQodG91cmlzdElkKVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTsgXHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgXHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnRvdXJpc3RJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gIHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6ICdDb3VsZCBub3QgZmluZCB0b3VyaXN0IHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFUb3VyaXN0QnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy50b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZGVsZXRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcbiJdfQ==\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var error = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while deleting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9e/touristController_9ee6bfceb00c4d02fdcd8e12f129a687.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2546\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23082,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23079,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":954,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":986,\"endOffset\":1675,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1697,\"endOffset\":3064,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2044,\"endOffset\":2819,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2294,\"endOffset\":2803,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":3093,\"endOffset\":3369,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3808,\"endOffset\":4292,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"Tourists.findById.then.res.statusCode\",\"ranges\":[{\"startOffset\":3906,\"endOffset\":4070,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4072,\"endOffset\":4264,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4272,\"endOffset\":4288,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":4328,\"endOffset\":4839,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Tourists.findByIdAndUpdate.then.res.statusCode\",\"ranges\":[{\"startOffset\":4453,\"endOffset\":4617,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4619,\"endOffset\":4811,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4819,\"endOffset\":4835,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4869,\"endOffset\":5317,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4947,\"endOffset\":5106,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":5108,\"endOffset\":5124,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":5132,\"endOffset\":5313,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/07/dashboardRouter_0791a49f2f45fc0f57ade98f27175c5c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2547\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/dashboardController_34872bbac017cfae6fcc33926d204118.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2548\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const app = require('../../app');\\n\\nconst server = require(\\\"supertest\\\")(app);\\n\\nconst jwt_decode = require('jwt-decode');\\n\\nconst Users = require('../../models/users');\\n\\nvar userToken;\\nvar assistantToken;\\nvar adminToken;\\nconst admin = {\\n \\\"firstname\\\": \\\"Admin\\\",\\n \\\"lastname\\\": \\\"Admin\\\",\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\n \\\"password\\\": \\\"admin-password\\\"\\n};\\nconst assistant = {\\n \\\"firstname\\\": \\\"Dinesh\\\",\\n \\\"lastname\\\": \\\"Chandimal\\\",\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\n};\\nconst tourist = {\\n \\\"firstname\\\": \\\"Sunil\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\n};\\n\\nconst signupAdmin = async () => {\\n await Users.deleteMany({});\\n await server.post(\\\"/users/signup/admin\\\").send(admin);\\n};\\n\\nconst getAdminToken = async () => {\\n if (adminToken) {\\n return adminToken;\\n }\\n\\n await signupAdmin();\\n var creds = {\\n username: admin.email,\\n password: admin.password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n adminToken = response.body.token;\\n return adminToken;\\n};\\n\\nconst addAssistant = async () => {\\n if (!adminToken) {\\n await getAdminToken();\\n }\\n\\n const response = await server.post(\\\"/employees\\\").set(\\\"Authorization\\\", `Bearer ${adminToken}`).send(assistant).expect(200);\\n return response.body.password;\\n};\\n\\nconst getAssistantToken = async () => {\\n if (assistantToken) {\\n return assistantToken;\\n }\\n\\n const password = await addAssistant();\\n var creds = {\\n username: assistant.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n assistantToken = response.body.token;\\n return assistantToken;\\n};\\n\\nconst addTourist = async () => {\\n if (!assistantToken) {\\n await getAssistantToken();\\n }\\n\\n const response = await server.post(\\\"/tourists\\\").set(\\\"Authorization\\\", `Bearer ${assistantToken}`).send(tourist).expect(200);\\n return response.body.password;\\n};\\n\\nconst getTouristToken = async () => {\\n if (userToken) {\\n return userToken;\\n }\\n\\n const password = await addTourist();\\n var creds = {\\n username: tourist.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n userToken = response.body.token;\\n return userToken;\\n};\\n\\nconst getExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Namal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\n \\\"mobile\\\": \\\"981114844\\\",\\n \\\"rommnumber\\\": \\\"41\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n return tourist._id.toString();\\n};\\n\\nconst getNonExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Kamal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n await tourist.remove();\\n return tourist._id.toString();\\n};\\n\\nconst decodeToken = token => {\\n var decoded = jwt_decode(token);\\n return decoded;\\n};\\n\\nmodule.exports = {\\n getAdminToken,\\n getAssistantToken,\\n getTouristToken,\\n decodeToken,\\n addTourist,\\n getTouristToken,\\n getExistingId,\\n getNonExistingId\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJfaGVscGVyLmpzIl0sIm5hbWVzIjpbImFwcCIsInJlcXVpcmUiLCJzZXJ2ZXIiLCJqd3RfZGVjb2RlIiwiVXNlcnMiLCJ1c2VyVG9rZW4iLCJhc3Npc3RhbnRUb2tlbiIsImFkbWluVG9rZW4iLCJhZG1pbiIsImFzc2lzdGFudCIsInRvdXJpc3QiLCJzaWdudXBBZG1pbiIsImRlbGV0ZU1hbnkiLCJwb3N0Iiwic2VuZCIsImdldEFkbWluVG9rZW4iLCJjcmVkcyIsInVzZXJuYW1lIiwiZW1haWwiLCJwYXNzd29yZCIsInJlc3BvbnNlIiwiYm9keSIsInRva2VuIiwiYWRkQXNzaXN0YW50Iiwic2V0IiwiZXhwZWN0IiwiZ2V0QXNzaXN0YW50VG9rZW4iLCJhZGRUb3VyaXN0IiwiZ2V0VG91cmlzdFRva2VuIiwiZ2V0RXhpc3RpbmdJZCIsIm5ld1RvdXJpc3QiLCJzYXZlIiwiX2lkIiwidG9TdHJpbmciLCJnZXROb25FeGlzdGluZ0lkIiwicmVtb3ZlIiwiZGVjb2RlVG9rZW4iLCJkZWNvZGVkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsV0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxXQUFELENBQVAsQ0FBcUJELEdBQXJCLENBQWY7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHRixPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNRyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxvQkFBRCxDQUFyQjs7QUFFQSxJQUFJSSxTQUFKO0FBQ0EsSUFBSUMsY0FBSjtBQUNBLElBQUlDLFVBQUo7QUFDQSxNQUFNQyxLQUFLLEdBQUc7QUFDVixlQUFhLE9BREg7QUFFVixjQUFZLE9BRkY7QUFHVixXQUFTLGlCQUhDO0FBSVYsY0FBWTtBQUpGLENBQWQ7QUFNQSxNQUFNQyxTQUFTLEdBQUc7QUFDZCxlQUFhLFFBREM7QUFFZCxjQUFZLFdBRkU7QUFHZCxXQUFTO0FB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QyxFQUFBQSxlQUQvRDtBQUNnRkMsRUFBQUEsYUFEaEY7QUFDK0ZLLEVBQUFBO0FBRC9GLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXBwID0gcmVxdWlyZSgnLi4vLi4vYXBwJyk7XHJcbmNvbnN0IHNlcnZlciA9IHJlcXVpcmUoXCJzdXBlcnRlc3RcIikoYXBwKTtcclxuY29uc3Qgand0X2RlY29kZSA9IHJlcXVpcmUoJ2p3dC1kZWNvZGUnKTtcclxuY29uc3QgVXNlcnMgPSByZXF1aXJlKCcuLi8uLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciB1c2VyVG9rZW47XHJcbnZhciBhc3Npc3RhbnRUb2tlbjtcclxudmFyIGFkbWluVG9rZW47XHJcbmNvbnN0IGFkbWluID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJBZG1pblwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkFkbWluXCIsXHJcbiAgICBcImVtYWlsXCI6IFwiYWRtaW5AZ21haWwuY29tXCIsXHJcbiAgICBcInBhc3N3b3JkXCI6IFwiYWRtaW4tcGFzc3dvcmRcIlxyXG59O1xyXG5jb25zdCBhc3Npc3RhbnQgPSB7XHJcbiAgICBcImZpcnN0bmFtZVwiOiBcIkRpbmVzaFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkNoYW5kaW1hbFwiLFxyXG4gICAgXCJlbWFpbFwiOiBcImRpbmVzaGNoYW5kaW1hbEBnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCB0b3VyaXN0ID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJTdW5pbFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkZlcm5hbWRvXCIsXHJcbiAgICBcImVtYWlsXCI6IFwic3VuaWxGZXJuYW1kb0BnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCBzaWdudXBBZG1pbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGF3YWl0IFVzZXJzLmRlbGV0ZU1hbnkoe30pO1xyXG4gICAgYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvdXNlcnMvc2lnbnVwL2FkbWluXCIpXHJcbiAgICAgICAgLnNlbmQoYWRtaW4pO1xyXG59O1xyXG5cclxuY29uc3QgZ2V0QWRtaW5Ub2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhZG1pblRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbiAgICB9XHJcbiAgICBhd2FpdCBzaWdudXBBZG1pbigpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiBhZG1pbi5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogYWRtaW4ucGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFkbWluVG9rZW4gPSByZXNwb25zZS5ib2R5LnRva2VuO1xyXG4gICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGFkZEFzc2lzdGFudCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYWRtaW5Ub2tlbikge1xyXG4gICAgICAgIGF3YWl0IGdldEFkbWluVG9rZW4oKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvZW1wbG95ZWVzXCIpXHJcbiAgICAgICAgLnNldChcIkF1dGhvcml6YXRpb25cIiwgYEJlYXJlciAke2FkbWluVG9rZW59YClcclxuICAgICAgICAuc2VuZChhc3Npc3RhbnQpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRBc3Npc3RhbnRUb2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhc3Npc3RhbnRUb2tlbikge1xyXG4gICAgICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkQXNzaXN0YW50KCk7XHJcbiAgICB2YXIgY3JlZHMgPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IGFzc2lzdGFudC5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogcGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFzc2lzdGFudFRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxufVxyXG5cclxuY29uc3QgYWRkVG91cmlzdCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYXNzaXN0YW50VG9rZW4pIHtcclxuICAgICAgICBhd2FpdCBnZXRBc3Npc3RhbnRUb2tlbigpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi90b3VyaXN0c1wiKVxyXG4gICAgICAgIC5zZXQoXCJBdXRob3JpemF0aW9uXCIsIGBCZWFyZXIgJHthc3Npc3RhbnRUb2tlbn1gKVxyXG4gICAgICAgIC5zZW5kKHRvdXJpc3QpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRUb3VyaXN0VG9rZW4gPSBhc3luYyAoKSA9PiB7XHJcbiAgICBpZiAodXNlclRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIHVzZXJUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkVG91cmlzdCgpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiB0b3VyaXN0LmVtYWlsLFxyXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlcnZlclxyXG4gICAgICAgIC5wb3N0KFwiL3VzZXJzL2xvZ2luXCIpXHJcbiAgICAgICAgLnNlbmQoY3JlZHMpO1xyXG4gICAgdXNlclRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiB1c2VyVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGdldEV4aXN0aW5nSWQgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBuZXdUb3VyaXN0ID0ge1xyXG4gICAgICAgIFwiZmlyc3RuYW1lXCI6IFwiTmFtYWxcIixcclxuICAgICAgICBcImxhc3RuYW1lXCI6IFwiRmVybmFtZG9cIixcclxuICAgICAgICBcImVtYWlsXCI6IFwibmFtYWxmZXJuYW1kb0BnbWFpbC5jb21cIixcclxuICAgICAgICBcIm1vYmlsZVwiOiBcIjk4MTExNDg0NFwiLFxyXG4gICAgICAgIFwicm9tbW51bWJlclwiIDogXCI0MVwiLFxyXG5cclxuICAgIH1cclxuICAgIGNvbnN0IHRvdXJpc3QgPSBuZXcgVXNlcnMobmV3VG91cmlzdCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnNhdmUoKTtcclxuXHJcbiAgICByZXR1cm4gdG91cmlzdC5faWQudG9TdHJpbmcoKTtcclxuXHJcbiAgICBcclxufVxyXG5cclxuY29uc3QgZ2V0Tm9uRXhpc3RpbmdJZCA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1RvdXJpc3QgPSB7XHJcbiAgICAgICAgXCJmaXJzdG5hbWVcIjogXCJLYW1hbFwiLFxyXG4gICAgICAgIFwibGFzdG5hbWVcIjogXCJGZXJuYW1kb1wiLFxyXG4gICAgICAgIFwiZW1haWxcIjogXCJrYW1hbGZlcm5hbWRvQGdtYWlsLmNvbVwiXHJcbiAgICB9XHJcbiAgICBjb25zdCB0b3VyaXN0ID0gbmV3IFVzZXJzKG5ld1RvdXJpc3QpO1xyXG4gICAgYXdhaXQgdG91cmlzdC5zYXZlKCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnJlbW92ZSgpO1xyXG5cclxuICAgIHJldHVybiB0b3VyaXN0Ll9pZC50b1N0cmluZygpO1xyXG59XHJcblxyXG5jb25zdCBkZWNvZGVUb2tlbiA9ICh0b2tlbikgPT4ge1xyXG4gICAgdmFyIGRlY29kZWQgPSBqd3RfZGVjb2RlKHRva2VuKTtcclxuICAgIHJldHVybiBkZWNvZGVkO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGdldEFkbWluVG9rZW4sIGdldEFzc2lzdGFudFRva2VuLCBnZXRUb3VyaXN0VG9rZW4sIGRlY29kZVRva2VuLCBhZGRUb3VyaXN0LCBnZXRUb3VyaXN0VG9rZW4gLGdldEV4aXN0aW5nSWQgLGdldE5vbkV4aXN0aW5nSWRcclxufVxyXG4iXX0=\",\"originalCode\":\"const app = require('../../app');\\r\\nconst server = require(\\\"supertest\\\")(app);\\r\\nconst jwt_decode = require('jwt-decode');\\r\\nconst Users = require('../../models/users');\\r\\n\\r\\nvar userToken;\\r\\nvar assistantToken;\\r\\nvar adminToken;\\r\\nconst admin = {\\r\\n \\\"firstname\\\": \\\"Admin\\\",\\r\\n \\\"lastname\\\": \\\"Admin\\\",\\r\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\r\\n \\\"password\\\": \\\"admin-password\\\"\\r\\n};\\r\\nconst assistant = {\\r\\n \\\"firstname\\\": \\\"Dinesh\\\",\\r\\n \\\"lastname\\\": \\\"Chandimal\\\",\\r\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\r\\n};\\r\\nconst tourist = {\\r\\n \\\"firstname\\\": \\\"Sunil\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\r\\n};\\r\\nconst signupAdmin = async () => {\\r\\n await Users.deleteMany({});\\r\\n await server\\r\\n .post(\\\"/users/signup/admin\\\")\\r\\n .send(admin);\\r\\n};\\r\\n\\r\\nconst getAdminToken = async () => {\\r\\n if (adminToken) {\\r\\n return adminToken;\\r\\n }\\r\\n await signupAdmin();\\r\\n var creds = {\\r\\n username: admin.email,\\r\\n password: admin.password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n adminToken = response.body.token;\\r\\n return adminToken;\\r\\n}\\r\\n\\r\\nconst addAssistant = async () => {\\r\\n if (!adminToken) {\\r\\n await getAdminToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/employees\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${adminToken}`)\\r\\n .send(assistant)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getAssistantToken = async () => {\\r\\n if (assistantToken) {\\r\\n return assistantToken;\\r\\n }\\r\\n const password = await addAssistant();\\r\\n var creds = {\\r\\n username: assistant.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n assistantToken = response.body.token;\\r\\n return assistantToken;\\r\\n}\\r\\n\\r\\nconst addTourist = async () => {\\r\\n if (!assistantToken) {\\r\\n await getAssistantToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/tourists\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${assistantToken}`)\\r\\n .send(tourist)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getTouristToken = async () => {\\r\\n if (userToken) {\\r\\n return userToken;\\r\\n }\\r\\n const password = await addTourist();\\r\\n var creds = {\\r\\n username: tourist.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n userToken = response.body.token;\\r\\n return userToken;\\r\\n}\\r\\n\\r\\nconst getExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Namal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\r\\n \\\"mobile\\\": \\\"981114844\\\",\\r\\n \\\"rommnumber\\\" : \\\"41\\\",\\r\\n\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n\\r\\n return tourist._id.toString();\\r\\n\\r\\n \\r\\n}\\r\\n\\r\\nconst getNonExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Kamal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n await tourist.remove();\\r\\n\\r\\n return tourist._id.toString();\\r\\n}\\r\\n\\r\\nconst decodeToken = (token) => {\\r\\n var decoded = jwt_decode(token);\\r\\n return decoded;\\r\\n}\\r\\n\\r\\nmodule.exports = {\\r\\n getAdminToken, getAssistantToken, getTouristToken, decodeToken, addTourist, getTouristToken ,getExistingId ,getNonExistingId\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/5d/user_helper_5d6019747344ffe72872c6622cdf23b3.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2692\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\user_helper.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13241,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":677,\"endOffset\":778,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"getAdminToken\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1089,\"count\":4}],\"isBlockCoverage\":false},{\"functionName\":\"addAssistant\",\"ranges\":[{\"startOffset\":1113,\"endOffset\":1339,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"getAssistantToken\",\"ranges\":[{\"startOffset\":1368,\"endOffset\":1686,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1708,\"endOffset\":1943,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristToken\",\"ranges\":[{\"startOffset\":1970,\"endOffset\":2264,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getExistingId\",\"ranges\":[{\"startOffset\":2289,\"endOffset\":2574,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"getNonExistingId\",\"ranges\":[{\"startOffset\":2602,\"endOffset\":2862,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"decodeToken\",\"ranges\":[{\"startOffset\":2885,\"endOffset\":2950,\"count\":0}],\"isBlockCoverage\":false}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":2,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1614411963256,\"runtime\":2573,\"slow\":false,\"start\":1614411960683},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\dashboard.test.js\",\"testResults\":[{\"ancestorTitles\":[\"GET /dashboard\"],\"duration\":353,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /dashboard requires Authorization - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 403\"},{\"ancestorTitles\":[\"GET /dashboard\"],\"duration\":56,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /dashboard with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMsbUJBQUQsQ0FBaEM7O0FBQ0EsSUFBSU0sT0FBTyxHQUFHTixPQUFPLENBQUMsaUJBQUQsQ0FBckI7O0FBQ0EsSUFBSU8sU0FBUyxHQUFHUCxPQUFPLENBQUMsb0JBQUQsQ0FBUCxDQUE4Qk0sT0FBOUIsQ0FBaEI7O0FBQ0EsSUFBSUUsWUFBWSxHQUFHUixPQUFPLENBQUMsZUFBRCxDQUExQjs7QUFDQSxJQUFJUyxNQUFNLEdBQUdULE9BQU8sQ0FBQyxRQUFELENBQXBCOztBQUNBLElBQUlVLFFBQVEsR0FBR1YsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsTUFBTVcsUUFBUSxHQUFHWCxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQUEsT0FBTyxDQUFDLFFBQUQsQ0FBUCxDQUFrQlksTUFBbEI7O0FBRUEsSUFBSUMsVUFBVSxHQUFHYixPQUFPLENBQUMscUJBQUQsQ0FBeEI7O0FBQ0EsSUFBSWMsY0FBYyxHQUFHZCxPQUFPLENBQUMseUJBQUQsQ0FBNUI7O0FBQ0EsSUFBSWUsV0FBVyxHQUFHZixPQUFPLENBQUMsc0JBQUQsQ0FBekI7O0FBQ0EsSUFBSWdCLGNBQWMsR0FBR2hCLE9BQU8sQ0FBQyx5QkFBRCxDQUE1Qjs7QUFDQSxJQUFJaUIsYUFBYSxHQUFHakIsT0FBTyxDQUFDLHdCQUFELENBQTNCOztBQUNBLElBQUlrQixlQUFlLEdBQUdsQixPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBRUEsSUFBSW1CLEdBQUcsR0FBR2xCLE9BQU8sRUFBakIsQyxDQUVBOztBQUNBa0IsR0FBRyxDQUFDQyxHQUFKLENBQVEsT0FBUixFQUFpQmpCLElBQUksQ0FBQ2tCLElBQUwsQ0FBVUMsU0FBVixFQUFxQixPQUFyQixDQUFqQjtBQUNBSCxHQUFHLENBQUNDLEdBQUosQ0FBUSxhQUFSLEVBQXVCLE1BQXZCO0FBQ0FELEdBQUcsQ0FBQ0ksR0FBSixDQUFRckIsSUFBSSxFQUFaO0FBQ0FpQixHQUFHLENBQUNJLEdBQUosQ0FBUWIsUUFBUSxDQUFDYyxVQUFULEVBQVI7QUFFQUwsR0FBRyxDQUFDSSxHQUFKLENBQVFuQixVQUFVLENBQUNxQixJQUFYLEVBQVI7QUFFQU4sR0FBRyxDQUFDSSxHQUFKLENBQVFmLFlBQVksQ0FBQyxvQkFBRCxDQUFwQixFLENBQ0E7O0FBQ0FXLEdBQUcsQ0FBQ0ksR0FBSixDQUFRdEIsT0FBTyxDQUFDd0IsSUFBUixFQUFSO0FBQ0FOLEdBQUcsQ0FBQ0ksR0FBSixDQUFRdEIsT0FBTyxDQUFDeUIsVUFBUixDQUFtQjtBQUFFQyxFQUFBQSxRQUFRLEVBQUU7QUFBWixDQUFuQixDQUFSO0FBQ0FSLEdBQUcsQ0FBQ0ksR0FBSixDQUFRZixZQUFZLEVBQXBCLEUsQ0FDQTs7QUFDQVcsR0FBRyxDQUFDSSxHQUFKLENBQVF0QixPQUFPLENBQUMyQixNQUFSLENBQWV6QixJQUFJLENBQUNrQixJQUFMLENBQVVDLFNBQVYsRUFBcUIsT0FBckIsQ0FBZixDQUFSO0FBRUEsSUFBSU8sR0FBRyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBdEI7O0FBQ0EsSUFBSUYsT0FBTyxDQUFDQyxHQUFSLENBQVlFLFFBQVosS0FBeUIsTUFBN0IsRUFBcUM7QUFDbkNKLEVBQUFBLEdBQUcsR0FBR0MsT0FBTyxDQUFDQyxHQUFSLENBQVlHLFlBQWxCO0FBQ0Q7O0FBQ0R2QixRQUFRLENBQUN3QixPQUFULENBQWlCTixHQUFqQixFQUFzQjtBQUFFTyxFQUFBQSxlQUFlLEVBQUUsSUFBbkI7QUFBeUJDLEVBQUFBLGNBQWMsRUFBRSxJQUF6QztBQUErQ0MsRUFBQUEsa0JBQWtCLEVBQUU7QUFBbkUsQ0FBdEIsRUFBaUdDLElBQWpHLENBQXVHQyxFQUFELElBQVEsQ0FDN0csQ0FERCxFQUNJQyxHQUFELElBQVM7QUFDVixNQUFJQSxHQUFKLEVBQVM7QUFDUEMsSUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksaUNBQVo7QUFDRCxHQUZELE1BRU87QUFDTEQsSUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVkseUJBQVo7QUFDRDtBQUNGLENBUEQ7QUFTQXhCLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFFBQVIsRUFBa0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/01/app_010e21b7416079df77678cc6cb70a530.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":1},{\"startOffset\":2313,\"endOffset\":2318,\"count\":0},{\"startOffset\":2375,\"endOffset\":2381,\"count\":0}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nvar upload = require('../controllers/upload');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\", authenticate.verifyUser, upload.UploadUserImage);\\nuserRouter.get('/logout', authenticate.verifyUser, userController.logout);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsInVwbG9hZCIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwiVXBsb2FkVXNlckltYWdlIiwiZ2V0IiwibG9nb3V0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLElBQUlJLE1BQU0sR0FBR0osT0FBTyxDQUFDLHVCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUssRUFBQUE7QUFBRixJQUFrQkwsT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlNLFlBQVksR0FBR04sT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlPLGVBQWUsR0FBR1AsT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlRLGNBQWMsR0FBR1IsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1TLElBQUksR0FBR1QsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1MsR0FBWCxDQUFlUCxVQUFVLENBQUNRLElBQVgsRUFBZjtBQUVBVixVQUFVLENBQUNXLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZixVQUFVLENBQUNnQixJQUFYLENBQWdCLGVBQWhCLEVBQWlDUixJQUFJLENBQUNJLGVBQXRDLEVBQXVETCxjQUFjLENBQUNVLFdBQXRFO0FBRUFqQixVQUFVLENBQUNnQixJQUFYLENBQWdCLFFBQWhCLEVBQTBCUixJQUFJLENBQUNJLGVBQS9CLEVBQWdETCxjQUFjLENBQUNXLEtBQS9EO0FBRUFsQixVQUFVLENBQUNnQixJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBcEIsVUFBVSxDQUFDZ0IsSUFBWCxDQUFnQiwyQkFBaEIsRUFBNENYLFlBQVksQ0FBQ2MsVUFBekQsRUFBcUVoQixNQUFNLENBQUNrQixlQUE1RTtBQUVBckIsVUFBVSxDQUFDc0IsR0FBWCxDQUFlLFNBQWYsRUFBeUJqQixZQUFZLENBQUNjLFVBQXRDLEVBQWtEWixjQUFjLENBQUNnQixNQUFqRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJ6QixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxudmFyIHVwbG9hZCA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3VwbG9hZCcpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG52YXIgdXNlckNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy91c2VyQ29udHJvbGxlcicpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcblxyXG51c2VyUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG51c2VyUm91dGVyLm9wdGlvbnMoJyonLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcblxyXG51c2VyUm91dGVyLnBvc3QoJy9zaWdudXAvYWRtaW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIuc2lnbnVwQWRtaW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvbG9naW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIubG9naW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvY2hhbmdlcGFzc293b3JkLzppZCcsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVzZXJDb250cm9sbGVyLmNoYW5nZVBhc3Nvd29yZCk7XHJcblxyXG51c2VyUm91dGVyLnBvc3QoXCIvdXBkYXRlcHJvZmlsZXBpY3R1cmUvOmlkXCIsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVwbG9hZC5VcGxvYWRVc2VySW1hZ2UpO1xyXG5cclxudXNlclJvdXRlci5nZXQoJy9sb2dvdXQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5sb2dvdXQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nvar upload = require('../controllers/upload');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\",authenticate.verifyUser, upload.UploadUserImage);\\r\\n\\r\\nuserRouter.get('/logout',authenticate.verifyUser, userController.logout);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/a6/userRouter_a6221ff3be20743fe1c0fd1dc9fd8435.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4566,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4563,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":606,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const sharp = require('sharp');\\n\\nconst uid = require('uid');\\n\\nconst fs = require('fs');\\n\\nconst Users = require('../models/users');\\n\\nconst Places = require('../models/visitingPlaces');\\n\\nconst uploadFile = async (req, res) => {\\n try {\\n await upload(req, res);\\n\\n if (req.file == undefined) {\\n return res.send(`You must select a file.`);\\n }\\n\\n return res.send(`File has been uploaded.`);\\n } catch (error) {\\n return res.send(`Error when trying upload image: ${error}`);\\n }\\n};\\n\\nconst UploadUserImage = async (req, res, next) => {\\n try {\\n const user_id = req.params._id;\\n const user = await Users.findById(user_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/userImages/${imageUrl}`;\\n let previousImagePath = `images/userImages/${user.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'profile.png';\\n }\\n\\n user.image = imageUrl;\\n await user.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nconst uploadPlaceImage = async (req, res, next) => {\\n try {\\n const place_id = req.params._id;\\n const user = await Places.findById(place_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/placeImages/${imageUrl}`;\\n let previousImagePath = `images/placeImages/${place.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'image.png';\\n }\\n\\n place.image = imageUrl;\\n await place.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nexports.UploadUserImage = UploadUserImage;\\nexports.uploadFile = uploadFile;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVwbG9hZC5qcyJdLCJuYW1lcyI6WyJzaGFycCIsInJlcXVpcmUiLCJ1aWQiLCJmcyIsIlVzZXJzIiwiUGxhY2VzIiwidXBsb2FkRmlsZSIsInJlcSIsInJlcyIsInVwbG9hZCIsImZpbGUiLCJ1bmRlZmluZWQiLCJzZW5kIiwiZXJyb3IiLCJVcGxvYWRVc2VySW1hZ2UiLCJuZXh0IiwidXNlcl9pZCIsInBhcmFtcyIsIl9pZCIsInVzZXIiLCJmaW5kQnlJZCIsImltYWdlVXJsIiwib3JpZ2luYWxuYW1lIiwiZmlsZW5hbWUiLCJwcmV2aW91c0ltYWdlUGF0aCIsImltYWdlIiwiaW1hZ2VFeGlzdCIsImV4aXN0c1N5bmMiLCJkZWxldGVJbWFnZSIsInBhdGgiLCJyb3RhdGUiLCJyZXNpemUiLCJ0b0ZpbGUiLCJ1bmxpbmsiLCJlcnIiLCJzYXZlIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwibWVzc2FnZSIsInVwbG9hZFBsYWNlSW1hZ2UiLCJwbGFjZV9pZCIsInBsYWNlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsT0FBRCxDQUFyQjs7QUFDQSxNQUFNQyxHQUFHLEdBQUdELE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLElBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsS0FBSyxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBckI7O0FBQ0EsTUFBTUksTUFBTSxHQUFHSixPQUFPLENBQUMsMEJBQUQsQ0FBdEI7O0FBRUEsTUFBTUssVUFBVSxHQUFHLE9BQU9DLEdBQVAsRUFBWUMsR0FBWixLQUFvQjtBQUNuQyxNQUFJO0FBQ0EsVUFBTUMsTUFBTSxDQUFDRixHQUFELEVBQU1DLEdBQU4sQ0FBWjs7QUFFQSxRQUFJRCxHQUFHLENBQUNHLElBQUosSUFBWUMsU0FBaEIsRUFBMkI7QUFDdkIsYUFBT0gsR0FBRyxDQUFDSSxJQUFK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QUFkLEVBQThCLGtCQUE5QjtBQUNBN0IsSUFBQUEsR0FBRyxDQUFDOEIsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCQyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNIO0FBQ0osQ0F6Q0Q7O0FBMkNBSSxPQUFPLENBQUM5QixlQUFSLEdBQTBCQSxlQUExQjtBQUNBOEIsT0FBTyxDQUFDdEMsVUFBUixHQUFxQkEsVUFBckIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzaGFycCA9IHJlcXVpcmUoJ3NoYXJwJyk7XHJcbmNvbnN0IHVpZCA9IHJlcXVpcmUoJ3VpZCcpO1xyXG5jb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XHJcbmNvbnN0IFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFBsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpXHJcblxyXG5jb25zdCB1cGxvYWRGaWxlID0gYXN5bmMgKHJlcSwgcmVzKSA9PiB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHVwbG9hZChyZXEsIHJlcyk7XHJcblxyXG4gICAgICAgIGlmIChyZXEuZmlsZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBZb3UgbXVzdCBzZWxlY3QgYSBmaWxlLmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBGaWxlIGhhcyBiZWVuIHVwbG9hZGVkLmApO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICByZXR1cm4gcmVzLnNlbmQoYEVycm9yIHdoZW4gdHJ5aW5nIHVwbG9hZCBpbWFnZTogJHtlcnJvcn1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IFVwbG9hZFVzZXJJbWFnZSA9IGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBjb25zdCB1c2VyX2lkID0gcmVxLnBhcmFtcy5faWQ7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IGF3YWl0IFVzZXJzLmZpbmRCeUlkKHVzZXJfaWQpO1xyXG5cclxuICAgICAgICBsZXQgaW1hZ2VVcmw7XHJcbiAgICAgICAgaWYgKHJlcS5maWxlKSB7XHJcbiAgICAgICAgICAgIGltYWdlVXJsID0gYCR7dWlkKCl9X18ke3JlcS5maWxlLm9yaWdpbmFsbmFtZX1gO1xyXG4gICAgICAgICAgICBsZXQgZmlsZW5hbWUgPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHtpbWFnZVVybH1gO1xyXG4gICAgICAgICAgICBsZXQgcHJldmlvdXNJbWFnZVBhdGggPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHt1c2VyLmltYWdlfWA7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpbWFnZUV4aXN0ID0gZnMuZXhpc3RzU3luYyhwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIGlmIChpbWFnZUV4aXN0KSB7XHJcbiAgICAgICAgICAgICAgICBkZWxldGVJbWFnZShwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYXdhaXQgc2hhcnAocmVxLmZpbGUucGF0aClcclxuICAgICAgICAgICAgICAgIC5yb3RhdGUoKVxyXG4gICAgICAgICAgICAgICAgLnJlc2l6ZSg1MDAsIDUwMClcclxuICAgICAgICAgICAgICAgIC50b0ZpbGUoZmlsZW5hbWUpO1xyXG5cclxuICAgICAgICAgICAgZnMudW5saW5rKHJlcS5maWxlLnBhdGgsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9ICdwcm9maWxlLnBuZyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1c2VyLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgdXNlci5zYXZlKCk7XHJcblxyXG5cclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1N1Y2Nlc3NmdWxseSB1cGRhdGVkIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcblxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgdXBkYXRpbmcgcHJvZmlsZSBwaWN0dXJlJyB9KTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IHVwbG9hZFBsYWNlSW1hZ2UgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfaWQgPSByZXEucGFyYW1zLl9pZDtcclxuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgUGxhY2VzLmZpbmRCeUlkKHBsYWNlX2lkKTtcclxuXHJcbiAgICAgICAgbGV0IGltYWdlVXJsO1xyXG4gICAgICAgIGlmIChyZXEuZmlsZSkge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9IGAke3VpZCgpfV9fJHtyZXEuZmlsZS5vcmlnaW5hbG5hbWV9YDtcclxuICAgICAgICAgICAgbGV0IGZpbGVuYW1lID0gYGltYWdlcy9wbGFjZUltYWdlcy8ke2ltYWdlVXJsfWA7XHJcbiAgICAgICAgICAgIGxldCBwcmV2aW91c0ltYWdlUGF0aCA9IGBpbWFnZXMvcGxhY2VJbWFnZXMvJHtwbGFjZS5pbWFnZX1gO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaW1hZ2VFeGlzdCA9IGZzLmV4aXN0c1N5bmMocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICBpZiAoaW1hZ2VFeGlzdCkge1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlSW1hZ2UocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGF3YWl0IHNoYXJwKHJlcS5maWxlLnBhdGgpXHJcbiAgICAgICAgICAgICAgICAucm90YXRlKClcclxuICAgICAgICAgICAgICAgIC5yZXNpemUoNTAwLCA1MDApXHJcbiAgICAgICAgICAgICAgICAudG9GaWxlKGZpbGVuYW1lKTtcclxuXHJcbiAgICAgICAgICAgIGZzLnVubGluayhyZXEuZmlsZS5wYXRoLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaW1hZ2VVcmwgPSAnaW1hZ2UucG5nJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBsYWNlLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgcGxhY2Uuc2F2ZSgpO1xyXG5cclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6ICdTdWNjZXNzZnVsbHkgdXBkYXRlZCBwcm9maWxlIHBpY3R1cmUnIH0pO1xyXG5cclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnRzLlVwbG9hZFVzZXJJbWFnZSA9IFVwbG9hZFVzZXJJbWFnZTtcclxuZXhwb3J0cy51cGxvYWRGaWxlID0gdXBsb2FkRmlsZTsiXX0=\",\"originalCode\":\"const sharp = require('sharp');\\r\\nconst uid = require('uid');\\r\\nconst fs = require('fs');\\r\\nconst Users = require('../models/users');\\r\\nconst Places = require('../models/visitingPlaces')\\r\\n\\r\\nconst uploadFile = async (req, res) => {\\r\\n try {\\r\\n await upload(req, res);\\r\\n\\r\\n if (req.file == undefined) {\\r\\n return res.send(`You must select a file.`);\\r\\n }\\r\\n\\r\\n return res.send(`File has been uploaded.`);\\r\\n } catch (error) {\\r\\n return res.send(`Error when trying upload image: ${error}`);\\r\\n }\\r\\n};\\r\\n\\r\\nconst UploadUserImage = async (req, res, next) => {\\r\\n try {\\r\\n const user_id = req.params._id;\\r\\n const user = await Users.findById(user_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/userImages/${imageUrl}`;\\r\\n let previousImagePath = `images/userImages/${user.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'profile.png';\\r\\n }\\r\\n\\r\\n user.image = imageUrl;\\r\\n await user.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nconst uploadPlaceImage = async (req, res, next) => {\\r\\n try {\\r\\n const place_id = req.params._id;\\r\\n const user = await Places.findById(place_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/placeImages/${imageUrl}`;\\r\\n let previousImagePath = `images/placeImages/${place.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'image.png';\\r\\n }\\r\\n\\r\\n place.image = imageUrl;\\r\\n await place.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nexports.UploadUserImage = UploadUserImage;\\r\\nexports.uploadFile = uploadFile;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/70/upload_70c590d2bd713c9562e3916387ba4116.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\upload.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":12791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":12788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"uploadFile\",\"ranges\":[{\"startOffset\":293,\"endOffset\":580,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"UploadUserImage\",\"ranges\":[{\"startOffset\":607,\"endOffset\":1704,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"uploadPlaceImage\",\"ranges\":[{\"startOffset\":1732,\"endOffset\":2835,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fa/users_fa250a82bd410ffb1909f920e93eed19.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2324\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c4/visitingPlaces_c4ccc91c117df8c4aeada72a82534688.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2335\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Moderater Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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RyxHQUFHLElBQUlRLEtBQUosQ0FBVSxnQ0FBVixDQUFOO0FBQ0FSLElBQUFBLEdBQUcsQ0FBQ1MsTUFBSixHQUFhLEdBQWI7QUFDQSxXQUFPSCxJQUFJLENBQUNOLEdBQUQsQ0FBWDtBQUNIO0FBQ0osQ0FkRCIsInNvdXJjZXNDb250ZW50IjpbInZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBMb2NhbFN0cmF0ZWd5ID0gcmVxdWlyZSgncGFzc3BvcnQtbG9jYWwnKS5TdHJhdGVneTtcclxudmFyIFVzZXIgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciBKd3RTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLlN0cmF0ZWd5O1xyXG52YXIgRXh0cmFjdEp3dCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLkV4dHJhY3RKd3Q7XHJcbnZhciBqd3QgPSByZXF1aXJlKCdqc29ud2VidG9rZW4nKTtcclxuXHJcblxyXG5wYXNzcG9ydC51c2UobmV3IExvY2FsU3RyYXRlZ3koVXNlci5hdXRoZW50aWNhdGUoKSkpO1xyXG5wYXNzcG9ydC5zZXJpYWxpemVVc2VyKFVzZXIuc2VyaWFsaXplVXNlcigpKTtcclxucGFzc3BvcnQuZGVzZXJpYWxpemVVc2VyKFVzZXIuZGVzZXJpYWxpemVVc2VyKCkpO1xyXG5cclxuZXhwb3J0cy5nZXRUb2tlbiA9ICh1c2VyKSA9PiB7XHJcbiAgICByZXR1cm4gand0LnNpZ24odXNlciwgcHJvY2Vzcy5lbnYuc2VjcmV0S2V5LFxyXG4gICAgICAgIHsgZXhwaXJlc0luOiAzNjAwIH0pO1xyXG59O1xyXG5cclxudmFyIG9wdHMgPSB7fTtcclxub3B0cy5qd3RGcm9tUmVxdWVzdCA9IEV4dHJhY3RKd3QuZnJvbUF1dGhIZWFkZXJBc0JlYXJlclRva2VuKCk7XHJcbm9wdHMuc2VjcmV0T3JLZXkgPSBwcm9jZXNzLmVudi5zZWNyZXRLZXk7XHJcblxyXG5leHBvcnRzLmp3dFBhc3Nwb3J0ID0gcGFzc3BvcnQudXNlKG5ldyBKd3RTdHJhdGVneShvcHRzLFxyXG4gICAgKGp3dF9wYXlsb2FkLCBkb25lKSA9PiB7XHJcbiAgICAgICAgVXNlci5maW5kT25lKHsgX2lkOiBqd3RfcGF5bG9hZC5faWQgfSwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShlcnIsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCB1c2VyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkb25lKG51bGwsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSkpO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlVc2VyID0gcGFzc3BvcnQuYXV0aGVudGljYXRlKCdqd3QnLCB7IHNlc3Npb246IGZhbHNlIH0pO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ2FkbWluJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlICE9ICdhZG1pbicpIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ0FkbWluIFZlcmlmaWNhdGlvbiBGYWlsZWQhJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDUwMDtcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnZlcmlmeU1vZGVyYXRlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgIT0gJ3VzZXInKSB7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdNb2RlcmF0ZXIgVmVyaWZpY2F0aW9uIEZhaWxlZCEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNTAwO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuIl19\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Moderater Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/83/authenticate_83ba38785e68b531d6a7c8378dfee9c9.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2336\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8642,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8639,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1871,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4b/validation_4b7a8ff68e044daa8c6daa8312a761dc.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2369\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(newPasswordString, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, function (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating Password'\\n });\\n });\\n};\\n\\nconst logout = (req, res) => {\\n if (req.session) {\\n req.session.destroy();\\n res.clearCookie('session-id');\\n } else {\\n var err = new Error('You are not logged in!');\\n err.status = 403;\\n }\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.logout = logout;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsImZpbmRCeUlkIiwidGhlbiIsInNhbml0aXplZFVzZXIiLCJzZXRQYXNzd29yZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwibWVzc2FnZSIsImxvZ291dCIsInNlc3Npb24iLCJkZXN0cm95IiwiY2xlYXJDb29raWUiLCJFcnJvciIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBckI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBYjs7QUFFQSxJQUFJQyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxpQkFBRCxDQUFuQjs7QUFDQSxJQUFJSSxRQUFRLEdBQUdKLE9BQU8sQ0FBQyxVQUFELENBQXRCOztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUdBLE1BQU1NLFdBQVcsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUNwQyxNQUFJQyxLQUFLLEdBQUc7QUFDUkMsSUFBQUEsUUFBUSxFQUFFSixHQUFHLENBQUNLLElBQUos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LEdBQWlCLEdBQWpCO0FBQ0FiLElBQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLElBQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCa0IsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQWpCRDtBQWtCSCxDQXBCRDs7QUFzQkEsTUFBTUMsTUFBTSxHQUFHLENBQUNwQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUN6QixNQUFJRCxHQUFHLENBQUNxQyxPQUFSLEVBQWlCO0FBQ2JyQyxJQUFBQSxHQUFHLENBQUNxQyxPQUFKLENBQVlDLE9BQVo7QUFDQXJDLElBQUFBLEdBQUcsQ0FBQ3NDLFdBQUosQ0FBZ0IsWUFBaEI7QUFDSCxHQUhELE1BSUs7QUFDRCxRQUFJM0IsR0FBRyxHQUFHLElBQUk0QixLQUFKLENBQVUsd0JBQVYsQ0FBVjtBQUNBNUIsSUFBQUEsR0FBRyxDQUFDTSxNQUFKLEdBQWEsR0FBYjtBQUNIO0FBQ0osQ0FURDs7QUFXQXVCLE9BQU8sQ0FBQzFDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0EwQyxPQUFPLENBQUNyQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBcUIsT0FBTyxDQUFDTCxNQUFSLEdBQWlCQSxNQUFqQjtBQUNBSyxPQUFPLENBQUNmLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbnZhciByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxudmFyIFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG5cclxuXHJcbmNvbnN0IHNpZ251cEFkbWluID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgYWRtaW4gPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIGZpcnN0bmFtZTogcmVxLmJvZHkuZmlyc3RuYW1lLFxyXG4gICAgICAgIGxhc3RuYW1lOiByZXEuYm9keS5sYXN0bmFtZSxcclxuICAgICAgICBlbWFpbDogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgcm9sZTogJ2FkbWluJ1xyXG4gICAgfVxyXG4gICAgVXNlcnMucmVnaXN0ZXIobmV3IFVzZXJzKGFkbWluKSxcclxuICAgICAgICByZXEuYm9keS5wYXNzd29yZCwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gVW5zdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVxLmJvZHkuZmlyc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIuZmlyc3RuYW1lID0gcmVxLmJvZHkuZmlyc3RuYW1lO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5Lmxhc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIubGFzdG5hbWUgPSByZXEuYm9keS5sYXN0bmFtZTtcclxuICAgICAgICAgICAgICAgIHVzZXIuc2F2ZSgoZXJyLCB1c2VyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHN0YXR1czogJ1JlZ2lzdHJhdGlvbiBTdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dpbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgcGFzc3BvcnQuYXV0aGVudGljYXRlKCdsb2NhbCcsIChlcnIsIHVzZXIsIGluZm8pID0+IHtcclxuXHJcbiAgICAgICAgaWYgKCF1c2VyKSB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAxO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdMb2dpbiBVbnN1Y2Nlc3NmdWwhJywgZXJyOiBpbmZvIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXEubG9nSW4odXNlciwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB2YXIgdG9rZW4gPSBhdXRoZW50aWNhdGUuZ2V0VG9rZW4oeyBfaWQ6IHJlcS51c2VyLl9pZCwgcm9sZTogdXNlci5yb2xlIH0pO1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdMb2dpbiBTdWNjZXNzZnVsIScsIHRva2VuOiB0b2tlbiwgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KShyZXEsIHJlcywgbmV4dCk7XHJcbn1cclxuXHJcbmNvbnN0IGNoYW5nZVBhc3Nvd29yZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHVzZXJJZCA9IHJlcS5wYXJhbXMuaWQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKG5ld1Bhc3N3b3JkU3RyaW5nLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ3Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgZnVuY3Rpb24gKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIFBhc3N3b3JkJyB9KTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dvdXQgPSAocmVxLCByZXMpID0+IHtcclxuICAgIGlmIChyZXEuc2Vzc2lvbikge1xyXG4gICAgICAgIHJlcS5zZXNzaW9uLmRlc3Ryb3koKTtcclxuICAgICAgICByZXMuY2xlYXJDb29raWUoJ3Nlc3Npb24taWQnKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGxvZ2dlZCBpbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5sb2dvdXQgPSBsb2dvdXQ7XHJcbmV4cG9ydHMuY2hhbmdlUGFzc293b3JkID0gY2hhbmdlUGFzc293b3JkOyJdfQ==\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(newPasswordString, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, function (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating Password' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst logout = (req, res) => {\\r\\n if (req.session) {\\r\\n req.session.destroy();\\r\\n res.clearCookie('session-id');\\r\\n }\\r\\n else {\\r\\n var err = new Error('You are not logged in!');\\r\\n err.status = 403;\\r\\n }\\r\\n}\\r\\n\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.logout = logout;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1b/userController_1b7f9872a721ffd88b6634cf95f37bee.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2370\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13343,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13340,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2707,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"logout\",\"ranges\":[{\"startOffset\":2725,\"endOffset\":2913,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/cors_34beef0e65d7cfb3f2bb7a05fb9de802.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2371\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":4}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/3b/employeeRouter_3bb83cd3174a28ed34e0f44c133b9b42.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2372\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n throw err;\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n throw err;\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while deletting.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsImZpcnN0bmFtZSIsIiRyZWdleCIsIiRvcHRpb25zIiwic29ydGJ5Iiwic29ydEJ5Iiwic29ydCIsImFkZEVtcGxveWVlIiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJlbXBsb3llZSIsInVzZXJuYW1lIiwiZW1haWwiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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QUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFRixHQUFHLENBQUNFO0FBQS9CLEtBQVQ7QUFDSCxHQVhMO0FBWUgsQ0FiRDs7QUFlQTJCLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNLLHlCQUFSLEdBQW9DQSx5QkFBcEM7QUFDQUwsT0FBTyxDQUFDUyxtQkFBUixHQUE4QkEsbUJBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRW1wbG95ZWVzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMvdXRpbHMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBnZXQgZGV0YWlscyBvZiB0aGUgYXNzaXN0YW50c1xyXG4gKiBAcGFyYW0geyp9IHJlcSBcclxuICogQHBhcmFtIHsqfSByZXMgXHJcbiAqIEBwYXJhbSB7Kn0gbmV4dCBcclxuICogQHJldHVybnMge2FycmF5fSBsaXN0IG9mIGVtcGxveWVlc1xyXG4gKi9cclxuY29uc3QgZ2V0QWxsRW1wbG95ZWVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH07XHJcbiAgICBFbXBsb3llZXMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbEVtcGxveWVlc0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9O1xyXG4gICAgLy8gaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgLy8gICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgLy8gICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9XHJcbiAgICAvLyB9XHJcbiAgICBpZiAocmVxLmJvZHkuc2ltaWxhclRvKSB7XHJcbiAgICAgICAgdmFyIHNlYXJjaEJ5ID0gcmVxLmJvZHkuc2ltaWxhclRvIHx8IHt9XHJcbiAgICAgICAgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiLCBmaXJzdG5hbWU6IHsgJHJlZ2V4OiBgJHtzZWFyY2hCeX1gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgRW1wbG95ZWVzLmZpbmQocXVlcnkpLnNvcnQoc29ydGJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZ2V0dGluZyBkYXRhJyB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGVtcGxveWVlLnNhdmUoKGVyciwgZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtYWlsOiBlbXBsb3llZS5lbWFpbCwgcGFzc3dvcmQ6IHJhbmRvbVBhc3N3b3JkIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIEVtcGxveWVlcy5yZW1vdmUoeyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzID0gZ2V0QWxsRW1wbG95ZWVzO1xyXG5leHBvcnRzLmdldEFsbEVtcGxveWVlc0J5TmFtZSA9IGdldEFsbEVtcGxveWVlc0J5TmFtZTtcclxuZXhwb3J0cy5hZGRFbXBsb3llZSA9IGFkZEVtcGxveWVlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbEVtcGxveWVlcyA9IGRlbGV0ZUFsbEVtcGxveWVlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigoZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWU6IGVtcGxveWVlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGVtcGxveWVlID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdtb2RlcmF0ZXInXHJcbiAgICB9XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5lbXBsb3llZUlkLCB7XHJcbiAgICAgICAgJHNldDogZW1wbG95ZWVcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlOiBlbXBsb3llZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHVwZGF0aW5nLlwiKTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBRW1wbG95ZWVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIGRlbGV0dGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRFbXBsb3llZURldGFpbHNCeUlkID0gZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVFbXBsb3llZURldGFpbHNCeUlkID0gdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBRW1wbG95ZWVCeUlkID0gZGVsZXRlQUVtcGxveWVlQnlJZDsiXX0=\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while deletting.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4c/employeeController_4c102fe7873f734bd5117d404757cd9d.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2373\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22614,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22611,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":1053,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":1086,\"endOffset\":1976,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1999,\"endOffset\":2993,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2326,\"endOffset\":2750,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2420,\"endOffset\":2734,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3023,\"endOffset\":3260,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3709,\"endOffset\":3993,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4030,\"endOffset\":4740,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4771,\"endOffset\":5211,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const multer = require('multer');\\n\\nconst {\\n v4: uuidv4\\n} = require('uuid');\\n\\nlet path = require('path');\\n\\nconst storage = multer.diskStorage({\\n destination: function (req, file, cb) {\\n cb(null, 'images');\\n },\\n filename: function (req, file, cb) {\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\n }\\n});\\n\\nconst fileFilter = (req, file, cb) => {\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\n\\n if (allowedFileTypes.includes(file.mimetype)) {\\n cb(null, true);\\n } else {\\n cb(null, false);\\n }\\n};\\n\\nlet upload = multer({\\n storage,\\n fileFilter\\n});\\nexports.upload = upload;\\n\\nconst password_generator = len => {\\n var length = len ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbIm11bHRlciIsInJlcXVpcmUiLCJ2NCIsInV1aWR2NCIsInBhdGgiLCJzdG9yYWdlIiwiZGlza1N0b3JhZ2UiLCJkZXN0aW5hdGlvbiIsInJlcSIsImZpbGUiLCJjYiIsImZpbGVuYW1lIiwiRGF0ZSIsIm5vdyIsImV4dG5hbWUiLCJvcmlnaW5hbG5hbWUiLCJmaWxlRmlsdGVyIiwiYWxsb3dlZEZpbGVUeXBlcyIsImluY2x1ZGVzIiwibWltZXR5cGUiLCJ1cGxvYWQiLCJleHBvcnRzIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwibGVuIiwibGVuZ3RoIiwic3RyaW5nIiwibnVtZXJpYyIsInB1bmN0dWF0aW9uIiwicGFzc3dvcmQiLCJjaGFyYWN0ZXIiLCJjcnVuY2giLCJlbnRpdHkxIiwiTWF0aCIsImNlaWwiLCJyYW5kb20iLCJlbnRpdHkyIiwiZW50aXR5MyIsImhvbGQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNwbGl0Iiwic29ydCIsImpvaW4iLCJzdWJzdHIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxFQUFFLEVBQUVDO0FBQU4sSUFBaUJGLE9BQU8sQ0FBQyxNQUFELENBQTlCOztBQUNBLElBQUlHLElBQUksR0FBR0gsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBQ0EsTUFBTUksT0FBTyxHQUFHTCxNQUFNLENBQUNNLFdBQVAsQ0FBbUI7QUFDL0JDLEVBQUFBLFdBQVcsRUFBRSxVQUFVQyxHQUFWLEVBQWVDLElBQWYsRUFBcUJDLEVBQXJCLEVBQXlCO0FBQ2xDQSxJQUFBQSxFQUFFLENBQUMsSUFBRCxFQUFPLFFBQVAsQ0FBRjtBQUNILEdBSDhCO0FBSS9CQyxFQUFBQSxRQUFRLEVBQUUsVUFBVUgsR0FBVixFQUFlQyxJQUFmLEVBQXFCQyxFQUFyQixFQUF5QjtBQUMvQkEsSUFBQUEsRUFBRSxDQUFDLElBQUQs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LGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtdWx0ZXIgPSByZXF1aXJlKCdtdWx0ZXInKTtcclxuY29uc3QgeyB2NDogdXVpZHY0IH0gPSByZXF1aXJlKCd1dWlkJyk7XHJcbmxldCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xyXG5jb25zdCBzdG9yYWdlID0gbXVsdGVyLmRpc2tTdG9yYWdlKHtcclxuICAgIGRlc3RpbmF0aW9uOiBmdW5jdGlvbiAocmVxLCBmaWxlLCBjYikge1xyXG4gICAgICAgIGNiKG51bGwsICdpbWFnZXMnKTtcclxuICAgIH0sXHJcbiAgICBmaWxlbmFtZTogZnVuY3Rpb24gKHJlcSwgZmlsZSwgY2IpIHtcclxuICAgICAgICBjYihudWxsLCB1dWlkdjQoKSArICctJyArIERhdGUubm93KCkgKyBwYXRoLmV4dG5hbWUoZmlsZS5vcmlnaW5hbG5hbWUpKTtcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBmaWxlRmlsdGVyID0gKHJlcSwgZmlsZSwgY2IpID0+IHtcclxuICAgIGNvbnN0IGFsbG93ZWRGaWxlVHlwZXMgPSBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL3BuZyddO1xyXG4gICAgaWYgKGFsbG93ZWRGaWxlVHlwZXMuaW5jbHVkZXMoZmlsZS5taW1ldHlwZSkpIHtcclxuICAgICAgICBjYihudWxsLCB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2IobnVsbCwgZmFsc2UpO1xyXG4gICAgfVxyXG59XHJcblxyXG5sZXQgdXBsb2FkID0gbXVsdGVyKHsgc3RvcmFnZSwgZmlsZUZpbHRlciB9KTtcclxuXHJcbmV4cG9ydHMudXBsb2FkID0gdXBsb2FkO1xyXG5cclxuY29uc3QgcGFzc3dvcmRfZ2VuZXJhdG9yID0gKGxlbikgPT4ge1xyXG4gICAgdmFyIGxlbmd0aCA9IChsZW4pID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfH17W11cXDo7Pz48LC4vLT0nO1xyXG4gICAgdmFyIHBhc3N3b3JkID0gXCJcIjtcclxuICAgIHZhciBjaGFyYWN0ZXIgPSBcIlwiO1xyXG4gICAgdmFyIGNydW5jaCA9IHRydWU7XHJcbiAgICB3aGlsZSAocGFzc3dvcmQubGVuZ3RoIDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgZW50aXR5MSA9IE1hdGguY2VpbChzdHJpbmcubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTIgPSBNYXRoLmNlaWwobnVtZXJpYy5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgZW50aXR5MyA9IE1hdGguY2VpbChwdW5jdHVhdGlvbi5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgaG9sZCA9IHN0cmluZy5jaGFyQXQoZW50aXR5MSk7XHJcbiAgICAgICAgaG9sZCA9IChwYXNzd29yZC5sZW5ndGggJSAyID09IDApID8gKGhvbGQudG9VcHBlckNhc2UoKSkgOiAoaG9sZCk7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IGhvbGQ7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IG51bWVyaWMuY2hhckF0KGVudGl0eTIpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBwdW5jdHVhdGlvbi5jaGFyQXQoZW50aXR5Myk7XHJcbiAgICAgICAgcGFzc3dvcmQgPSBjaGFyYWN0ZXI7XHJcbiAgICB9XHJcbiAgICBwYXNzd29yZCA9IHBhc3N3b3JkLnNwbGl0KCcnKS5zb3J0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAuNSAtIE1hdGgucmFuZG9tKCkgfSkuam9pbignJyk7XHJcbiAgICByZXR1cm4gcGFzc3dvcmQuc3Vic3RyKDAsIGxlbmd0aCk7XHJcbn1cclxuXHJcbmV4cG9ydHMucGFzc3dvcmRfZ2VuZXJhdG9yID0gcGFzc3dvcmRfZ2VuZXJhdG9yOyJdfQ==\",\"originalCode\":\"const multer = require('multer');\\r\\nconst { v4: uuidv4 } = require('uuid');\\r\\nlet path = require('path');\\r\\nconst storage = multer.diskStorage({\\r\\n destination: function (req, file, cb) {\\r\\n cb(null, 'images');\\r\\n },\\r\\n filename: function (req, file, cb) {\\r\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\r\\n }\\r\\n});\\r\\n\\r\\nconst fileFilter = (req, file, cb) => {\\r\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\r\\n if (allowedFileTypes.includes(file.mimetype)) {\\r\\n cb(null, true);\\r\\n } else {\\r\\n cb(null, false);\\r\\n }\\r\\n}\\r\\n\\r\\nlet upload = multer({ storage, fileFilter });\\r\\n\\r\\nexports.upload = upload;\\r\\n\\r\\nconst password_generator = (len) => {\\r\\n var length = (len) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/f3/utils_f37ac8376b54b6ced952605900298d07.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2374\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":7861,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":7858,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"destination\",\"ranges\":[{\"startOffset\":248,\"endOffset\":302,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"filename\",\"ranges\":[{\"startOffset\":316,\"endOffset\":423,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"fileFilter\",\"ranges\":[{\"startOffset\":448,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":752,\"endOffset\":1636,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1537,\"endOffset\":1586,\"count\":29}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9d/placeRouter_9d9aca2c41f2c1b6283bdacdd67537b2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2415\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/ee/placeController_ee3a20e34d4d356553af723b6f7f6a6e.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2416\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwidmVyaWZ5TW9kZXJhdGVyIiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQXZCO0FBRUFELGNBQWMsQ0FBQ0UsR0FBZixDQUFtQlIsVUFBVSxDQUFDUyxJQUFYLEVBQW5CLEUsQ0FDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBSCxjQUFjLENBQUNJLEtBQWYsQ0FBcUIsR0FBckIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFOENaLGtCQUFrQixDQUFDYSxlQUZqRSxFQUdLQyxJQUhMLENBR1VsQixJQUFJLENBQUNXLGVBSGYsRUFHK0JULFlBQVksQ0FBQ2MsVUFINUMsRUFHeURaLGtCQUFrQixDQUFDZSxXQUg1RSxFQUlLQyxHQUpMLENBSVNwQixJQUFJLENBQUNXLGVBSmQsRUFJK0JULFlBQVksQ0FBQ2MsVUFKNUMsRUFJd0RkLFlBQVksQ0FBQ21CLGVBSnJFLEVBSXNGLENBQUNULEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQ2xHVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEsMkNBQVI7QUFDSCxDQVBMLEVBUUtDLE1BUkwsQ0FRWXpCLElBQUksQ0FBQ1csZUFSakIsRUFRa0NULFlBQVksQ0FBQ2MsVUFSL0MsRUFRMkRkLFlBQVksQ0FBQ3dCLFdBUnhFLEVBUXFGdEIsa0JBQWtCLENBQUN1QixrQkFSeEcsRSxDQVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixjQUFjLENBQUNJLEtBQWYsQ0FBcUIsY0FBckIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DVCxZQUFZLENBQUNjLFVBRGhELEVBQzRELENBQUNKLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEbEcsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFNkNaLGtCQUFrQixDQUFDd0Isc0JBRmhFLEVBR0tWLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQ1QsWUFBWSxDQUFDYyxVQUg3QyxFQUd5RGQsWUFBWSxDQUFDd0IsV0FIdEUsRUFHbUYsQ0FBQ2QsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDL0ZULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSxnREFBZ0RaLEdBQUcsQ0FBQ2lCLE1BQUosQ0FBV0MsVUFBbkU7QUFDSCxDQU5MLEVBT0tWLEdBUEwsQ0FPU3BCLElBQUksQ0FBQ1csZUFQZCxFQU8rQlQsWUFBWSxDQUFDYyxVQVA1QyxFQU93RGQsWUFBWSxDQUFDbUIsZUFQckUsRUFPc0ZqQixrQkFBa0IsQ0FBQzJCLGtCQVB6RyxFQVFLTixNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUN3QixXQVJ4RSxFQVFxRnRCLGtCQUFrQixDQUFDNEIsa0JBUnhHO0FBVUEzQixjQUFjLENBQUNJLEtBQWYsQ0FBcUIsZUFBckIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DVCxZQUFZLENBQUNjLFVBRGhELEVBQzRELENBQUNKLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEbEcsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFOENaLGtCQUFrQixDQUFDNkIsdUJBRmpFO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGNBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHNjaGVkdWxlQ29udHJvbGxlciA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3NjaGVkdWxlQ29udHJvbGxlcicpXHJcblxyXG5jb25zdCBzY2hlZHVsZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgUm91dGVzXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnLycpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeU1vZGVyYXRlciwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlQWxsU2NoZWR1bGVzKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBSb3V0ZXMgT24gSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvOnNjaGVkdWxlSWQnKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgc2NoZWR1bGVDb250cm9sbGVyLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvc2NoZWR1bGVzLycgKyByZXEucGFyYW1zLnNjaGVkdWxlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIudXBkYXRlU2NoZWR1bGVCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgc2NoZWR1bGVDb250cm9sbGVyLmRlbGV0ZVNjaGVkdWxlQnlJZCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnL3VzZXIvOnVzZXJJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAgc2NoZWR1bGVDb250cm9sbGVyLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gc2NoZWR1bGVSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9b/scheduleRouter_9b57edc7078385d142c957dea9d9e0be.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2417\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9621,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9618,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1085,\"endOffset\":1188,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1621,\"endOffset\":1661,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1824,\"endOffset\":1953,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2288,\"endOffset\":2328,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to add a schedule\\\"\\n });\\n });\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Update failed\\\"\\n });\\n });\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Delete failed\\\"\\n });\\n });\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwibXNnIiwiX21lc3NhZ2UiLCJhZGRTY2hlZHVsZSIsInNjaGVkdWxlIiwidXNlciIsImJvZHkiLCJwbGFjZSIsImRhdGUiLCJzdGF0ZSIsInRyYXZlbGxpbmdNZXRob2QiLCJjcmVhdGUiLCJkZWxldGVBbGxTY2hlZHVsZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInNjaGVkdWxlSWQiLCJ1cGRhdGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxxQkFBRCxDQUF6QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3hDTCxFQUFBQSxTQUFTLENBQUNNLElBQVYsQ0FBZUgsR0FBRyxDQUFDSSxLQUFuQixFQUEwQkMsUUFBMUIsQ0FBbUMsT0FBbkMsRUFBNENBLFFBQTVDLENBQXFELE1BQXJELEVBQ0tDLElBREwsQ0FDV0MsU0FBRCxJQUFlO0FBQ2pCTixJQUFBQSxHQUFHLENBQUNPLFVBQUosR0FBaUIs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Q1cwQixJQUFELElBQVU7QUFDWi9CLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQmdDLE1BQUFBLFFBQVEsRUFBQ1g7QUFBMUIsS0FBVDtBQUNILEdBTEwsRUFLUXBCLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTO0FBQ1pYLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQVZMO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gZ2V0IGRhdGFcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJ1c2VyXCI6IFN0cmluZyhyZXEucGFyYW1zLnVzZXJJZCkgfTtcclxuICAgIFNjaGVkdWxlcy5maW5kKHF1ZXJ5KS5wb3B1bGF0ZShcInBsYWNlXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+ICB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICBjb25zdCBtc2cgPSBlcnIuX21lc3NhZ2U7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IG1zZyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkZhaWxlZCB0byBnZXQgZGF0YVwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBhZGRTY2hlZHVsZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHNjaGVkdWxlID0ge1xyXG4gICAgICAgIHVzZXI6IHJlcS5ib2R5LnVzZXIsXHJcbiAgICAgICAgcGxhY2U6IHJlcS5ib2R5LnBsYWNlLFxyXG4gICAgICAgIGRhdGU6IHJlcS5ib2R5LmRhdGUsXHJcbiAgICAgICAgc3RhdGU6IFwibmV3XCIsXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZDogcmVxLmJvZHkudHJhdmVsbGluZ01ldGhvZFxyXG4gICAgfVxyXG4gICAgU2NoZWR1bGVzLmNyZWF0ZShzY2hlZHVsZSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6c2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgY29uc3QgbXNnID0gZXJyLl9tZXNzYWdlO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBtc2cgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gYWRkIGEgc2NoZWR1bGVcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzID0gZ2V0QWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmFkZFNjaGVkdWxlID0gYWRkU2NoZWR1bGU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsU2NoZWR1bGVzID0gZGVsZXRlQWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyID0gZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXI7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlOnNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBwbGFjZVwiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgU2NoZWR1bGVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuc2NoZWR1bGVJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTpzY2hlZHVsZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiVXBkYXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6cmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiRGVsZXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnRzLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSBnZXRTY2hlZHVsZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVNjaGVkdWxlQnlJZCA9IHVwZGF0ZVNjaGVkdWxlQnlJZDtcclxuZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5SWQgPSBkZWxldGVTY2hlZHVsZUJ5SWQ7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgVXNlcklEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vLyBjb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4vLyAgICAgU2NoZWR1bGVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuc2NoZWR1bGVJZClcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuLy8gICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4vLyAgICAgfSwgeyBuZXc6IHRydWUgfSlcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IGRlbGV0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4vLyAgICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuLy8gICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxuLy8gfSJdfQ==\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to add a schedule\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Update failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response:resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Delete failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1e/scheduleController_1ed35fc0c47927fadcf3cf43433b4df6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2542\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":846,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":881,\"endOffset\":1554,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1577,\"endOffset\":2348,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2378,\"endOffset\":2588,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":3041,\"endOffset\":3489,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3519,\"endOffset\":4012,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":4042,\"endOffset\":4480,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/e2/schedules_e2f8e79bc28961f4db3736c92d490e47.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2543\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0a/touristRouter_0ad938586662daadc81c6cb1ad2e0f53.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2545\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var error = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while deleting data'\\n });\\n });\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJtZXNzYWdlIiwiZ2V0QWxsVG91cmlzdHNCeU5hbWUiLCJib2R5Iiwic2ltaWxhclRvIiwic2VhcmNoQnkiLCIkdGV4dCIsIiRzZWFyY2giLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkVG91cmlzdCIsInJhbmRvbVBhc3N3b3JkIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwidG91cmlzdCIsInVzZXJuYW1lIiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsIm1vYmlsZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxUb3VyaXN0cyIsInJlbW92ZSIsInJlc3AiLCJyZXNwb25zZSIsImV4cG9ydHMiLCJnZXRUb3VyaXN0RGV0YWlsc0J5SWQiLCJ0b3VyaXN0SWQiLCJwYXJhbXMiLCJmaW5kQnlJZCIsInVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCIsImZpbmRCeUlkQW5kVXBkYXRlIiwiJHNldCIsIm5ldyIsImRlbGV0ZUFUb3VyaXN0QnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUUsY0FBYyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLE1BQUlDLEtB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O0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCK0IsTUFBQUEsUUFBUSxFQUFFRDtBQUEzQixLQUFUO0FBQ0gsR0FMTCxFQUtRN0IsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVM7QUFDWlYsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCRyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNILEdBVkw7QUFXSCxDQVpEOztBQWNBNkIsT0FBTyxDQUFDQyxxQkFBUixHQUFnQ0EscUJBQWhDO0FBQ0FELE9BQU8sQ0FBQ0ssd0JBQVIsR0FBbUNBLHdCQUFuQztBQUNBTCxPQUFPLENBQUNTLGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBUb3VyaXN0cyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG5jb25zdCB1dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzL3V0aWxzJyk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsVG91cmlzdHMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiIH07XHJcbiAgICAvLyB2YXIgb2JqID0gT2JqZWN0LmFzc2lnbihxdWVyeSwgeyAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH0pO1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgfVxyXG5cclxuICAgIHZhciBzb3J0YnkgPSByZXEuYm9keS5zb3J0QnkgfHwge307XHJcbiAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHRvdXJpc3RJZCA9IHJlcS5wYXJhbXMudG91cmlzdElkO1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWQodG91cmlzdElkKVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTsgXHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgXHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnRvdXJpc3RJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gIHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6ICdDb3VsZCBub3QgZmluZCB0b3VyaXN0IHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFUb3VyaXN0QnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy50b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZGVsZXRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcbiJdfQ==\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var error = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while deleting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9e/touristController_9ee6bfceb00c4d02fdcd8e12f129a687.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2546\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23082,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23079,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":954,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":986,\"endOffset\":1675,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1697,\"endOffset\":3064,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":3093,\"endOffset\":3369,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3808,\"endOffset\":4292,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":4328,\"endOffset\":4839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4869,\"endOffset\":5317,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/07/dashboardRouter_0791a49f2f45fc0f57ade98f27175c5c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2547\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/dashboardController_34872bbac017cfae6fcc33926d204118.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2548\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":1},{\"startOffset\":2429,\"endOffset\":2461,\"count\":0}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":976,\"endOffset\":1172,\"count\":3}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"const app = require('../../app');\\n\\nconst server = require(\\\"supertest\\\")(app);\\n\\nconst jwt_decode = require('jwt-decode');\\n\\nconst Users = require('../../models/users');\\n\\nvar userToken;\\nvar assistantToken;\\nvar adminToken;\\nconst admin = {\\n \\\"firstname\\\": \\\"Admin\\\",\\n \\\"lastname\\\": \\\"Admin\\\",\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\n \\\"password\\\": \\\"admin-password\\\"\\n};\\nconst assistant = {\\n \\\"firstname\\\": \\\"Dinesh\\\",\\n \\\"lastname\\\": \\\"Chandimal\\\",\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\n};\\nconst tourist = {\\n \\\"firstname\\\": \\\"Sunil\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\n};\\n\\nconst signupAdmin = async () => {\\n await Users.deleteMany({});\\n await server.post(\\\"/users/signup/admin\\\").send(admin);\\n};\\n\\nconst getAdminToken = async () => {\\n if (adminToken) {\\n return adminToken;\\n }\\n\\n await signupAdmin();\\n var creds = {\\n username: admin.email,\\n password: admin.password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n adminToken = response.body.token;\\n return adminToken;\\n};\\n\\nconst addAssistant = async () => {\\n if (!adminToken) {\\n await getAdminToken();\\n }\\n\\n const response = await server.post(\\\"/employees\\\").set(\\\"Authorization\\\", `Bearer ${adminToken}`).send(assistant).expect(200);\\n return response.body.password;\\n};\\n\\nconst getAssistantToken = async () => {\\n if (assistantToken) {\\n return assistantToken;\\n }\\n\\n const password = await addAssistant();\\n var creds = {\\n username: assistant.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n assistantToken = response.body.token;\\n return assistantToken;\\n};\\n\\nconst addTourist = async () => {\\n if (!assistantToken) {\\n await getAssistantToken();\\n }\\n\\n const response = await server.post(\\\"/tourists\\\").set(\\\"Authorization\\\", `Bearer ${assistantToken}`).send(tourist).expect(200);\\n return response.body.password;\\n};\\n\\nconst getTouristToken = async () => {\\n if (userToken) {\\n return userToken;\\n }\\n\\n const password = await addTourist();\\n var creds = {\\n username: tourist.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n userToken = response.body.token;\\n return userToken;\\n};\\n\\nconst getExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Namal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\n \\\"mobile\\\": \\\"981114844\\\",\\n \\\"rommnumber\\\": \\\"41\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n return tourist._id.toString();\\n};\\n\\nconst getNonExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Kamal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n await tourist.remove();\\n return tourist._id.toString();\\n};\\n\\nconst decodeToken = token => {\\n var decoded = jwt_decode(token);\\n return decoded;\\n};\\n\\nmodule.exports = {\\n getAdminToken,\\n getAssistantToken,\\n getTouristToken,\\n decodeToken,\\n addTourist,\\n getTouristToken,\\n getExistingId,\\n getNonExistingId\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJfaGVscGVyLmpzIl0sIm5hbWVzIjpbImFwcCIsInJlcXVpcmUiLCJzZXJ2ZXIiLCJqd3RfZGVjb2RlIiwiVXNlcnMiLCJ1c2VyVG9rZW4iLCJhc3Npc3RhbnRUb2tlbiIsImFkbWluVG9rZW4iLCJhZG1pbiIsImFzc2lzdGFudCIsInRvdXJpc3QiLCJzaWdudXBBZG1pbiIsImRlbGV0ZU1hbnkiLCJwb3N0Iiwic2VuZCIsImdldEFkbWluVG9rZW4iLCJjcmVkcyIsInVzZXJuYW1lIiwiZW1haWwiLCJwYXNzd29yZCIsInJlc3BvbnNlIiwiYm9keSIsInRva2VuIiwiYWRkQXNzaXN0YW50Iiwic2V0IiwiZXhwZWN0IiwiZ2V0QXNzaXN0YW50VG9rZW4iLCJhZGRUb3VyaXN0IiwiZ2V0VG91cmlzdFRva2VuIiwiZ2V0RXhpc3RpbmdJZCIsIm5ld1RvdXJpc3QiLCJzYXZlIiwiX2lkIiwidG9TdHJpbmciLCJnZXROb25FeGlzdGluZ0lkIiwicmVtb3ZlIiwiZGVjb2RlVG9rZW4iLCJkZWNvZGVkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsV0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxXQUFELENBQVAsQ0FBcUJELEdBQXJCLENBQWY7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHRixPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNRyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxvQkFBRCxDQUFyQjs7QUFFQSxJQUFJSSxTQUFKO0FBQ0EsSUFBSUMsY0FBSjtBQUNBLElBQUlDLFVBQUo7QUFDQSxNQUFNQyxLQUFLLEdBQUc7QUFDVixlQUFhLE9BREg7QUFFVixjQUFZLE9BRkY7QUFHVixXQUFTLGlCQUhDO0FBSVYsY0FBWTtBQUpGLENBQWQ7QUFNQSxNQUFNQyxTQUFTLEdBQUc7QUFDZCxlQUFhLFFBREM7QUFFZCxjQUFZLFdBRkU7QUFHZCxXQUFTO0FB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QyxFQUFBQSxlQUQvRDtBQUNnRkMsRUFBQUEsYUFEaEY7QUFDK0ZLLEVBQUFBO0FBRC9GLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXBwID0gcmVxdWlyZSgnLi4vLi4vYXBwJyk7XHJcbmNvbnN0IHNlcnZlciA9IHJlcXVpcmUoXCJzdXBlcnRlc3RcIikoYXBwKTtcclxuY29uc3Qgand0X2RlY29kZSA9IHJlcXVpcmUoJ2p3dC1kZWNvZGUnKTtcclxuY29uc3QgVXNlcnMgPSByZXF1aXJlKCcuLi8uLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciB1c2VyVG9rZW47XHJcbnZhciBhc3Npc3RhbnRUb2tlbjtcclxudmFyIGFkbWluVG9rZW47XHJcbmNvbnN0IGFkbWluID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJBZG1pblwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkFkbWluXCIsXHJcbiAgICBcImVtYWlsXCI6IFwiYWRtaW5AZ21haWwuY29tXCIsXHJcbiAgICBcInBhc3N3b3JkXCI6IFwiYWRtaW4tcGFzc3dvcmRcIlxyXG59O1xyXG5jb25zdCBhc3Npc3RhbnQgPSB7XHJcbiAgICBcImZpcnN0bmFtZVwiOiBcIkRpbmVzaFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkNoYW5kaW1hbFwiLFxyXG4gICAgXCJlbWFpbFwiOiBcImRpbmVzaGNoYW5kaW1hbEBnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCB0b3VyaXN0ID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJTdW5pbFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkZlcm5hbWRvXCIsXHJcbiAgICBcImVtYWlsXCI6IFwic3VuaWxGZXJuYW1kb0BnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCBzaWdudXBBZG1pbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGF3YWl0IFVzZXJzLmRlbGV0ZU1hbnkoe30pO1xyXG4gICAgYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvdXNlcnMvc2lnbnVwL2FkbWluXCIpXHJcbiAgICAgICAgLnNlbmQoYWRtaW4pO1xyXG59O1xyXG5cclxuY29uc3QgZ2V0QWRtaW5Ub2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhZG1pblRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbiAgICB9XHJcbiAgICBhd2FpdCBzaWdudXBBZG1pbigpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiBhZG1pbi5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogYWRtaW4ucGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFkbWluVG9rZW4gPSByZXNwb25zZS5ib2R5LnRva2VuO1xyXG4gICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGFkZEFzc2lzdGFudCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYWRtaW5Ub2tlbikge1xyXG4gICAgICAgIGF3YWl0IGdldEFkbWluVG9rZW4oKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvZW1wbG95ZWVzXCIpXHJcbiAgICAgICAgLnNldChcIkF1dGhvcml6YXRpb25cIiwgYEJlYXJlciAke2FkbWluVG9rZW59YClcclxuICAgICAgICAuc2VuZChhc3Npc3RhbnQpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRBc3Npc3RhbnRUb2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhc3Npc3RhbnRUb2tlbikge1xyXG4gICAgICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkQXNzaXN0YW50KCk7XHJcbiAgICB2YXIgY3JlZHMgPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IGFzc2lzdGFudC5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogcGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFzc2lzdGFudFRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxufVxyXG5cclxuY29uc3QgYWRkVG91cmlzdCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYXNzaXN0YW50VG9rZW4pIHtcclxuICAgICAgICBhd2FpdCBnZXRBc3Npc3RhbnRUb2tlbigpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi90b3VyaXN0c1wiKVxyXG4gICAgICAgIC5zZXQoXCJBdXRob3JpemF0aW9uXCIsIGBCZWFyZXIgJHthc3Npc3RhbnRUb2tlbn1gKVxyXG4gICAgICAgIC5zZW5kKHRvdXJpc3QpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRUb3VyaXN0VG9rZW4gPSBhc3luYyAoKSA9PiB7XHJcbiAgICBpZiAodXNlclRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIHVzZXJUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkVG91cmlzdCgpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiB0b3VyaXN0LmVtYWlsLFxyXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlcnZlclxyXG4gICAgICAgIC5wb3N0KFwiL3VzZXJzL2xvZ2luXCIpXHJcbiAgICAgICAgLnNlbmQoY3JlZHMpO1xyXG4gICAgdXNlclRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiB1c2VyVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGdldEV4aXN0aW5nSWQgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBuZXdUb3VyaXN0ID0ge1xyXG4gICAgICAgIFwiZmlyc3RuYW1lXCI6IFwiTmFtYWxcIixcclxuICAgICAgICBcImxhc3RuYW1lXCI6IFwiRmVybmFtZG9cIixcclxuICAgICAgICBcImVtYWlsXCI6IFwibmFtYWxmZXJuYW1kb0BnbWFpbC5jb21cIixcclxuICAgICAgICBcIm1vYmlsZVwiOiBcIjk4MTExNDg0NFwiLFxyXG4gICAgICAgIFwicm9tbW51bWJlclwiIDogXCI0MVwiLFxyXG5cclxuICAgIH1cclxuICAgIGNvbnN0IHRvdXJpc3QgPSBuZXcgVXNlcnMobmV3VG91cmlzdCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnNhdmUoKTtcclxuXHJcbiAgICByZXR1cm4gdG91cmlzdC5faWQudG9TdHJpbmcoKTtcclxuXHJcbiAgICBcclxufVxyXG5cclxuY29uc3QgZ2V0Tm9uRXhpc3RpbmdJZCA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1RvdXJpc3QgPSB7XHJcbiAgICAgICAgXCJmaXJzdG5hbWVcIjogXCJLYW1hbFwiLFxyXG4gICAgICAgIFwibGFzdG5hbWVcIjogXCJGZXJuYW1kb1wiLFxyXG4gICAgICAgIFwiZW1haWxcIjogXCJrYW1hbGZlcm5hbWRvQGdtYWlsLmNvbVwiXHJcbiAgICB9XHJcbiAgICBjb25zdCB0b3VyaXN0ID0gbmV3IFVzZXJzKG5ld1RvdXJpc3QpO1xyXG4gICAgYXdhaXQgdG91cmlzdC5zYXZlKCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnJlbW92ZSgpO1xyXG5cclxuICAgIHJldHVybiB0b3VyaXN0Ll9pZC50b1N0cmluZygpO1xyXG59XHJcblxyXG5jb25zdCBkZWNvZGVUb2tlbiA9ICh0b2tlbikgPT4ge1xyXG4gICAgdmFyIGRlY29kZWQgPSBqd3RfZGVjb2RlKHRva2VuKTtcclxuICAgIHJldHVybiBkZWNvZGVkO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGdldEFkbWluVG9rZW4sIGdldEFzc2lzdGFudFRva2VuLCBnZXRUb3VyaXN0VG9rZW4sIGRlY29kZVRva2VuLCBhZGRUb3VyaXN0LCBnZXRUb3VyaXN0VG9rZW4gLGdldEV4aXN0aW5nSWQgLGdldE5vbkV4aXN0aW5nSWRcclxufVxyXG4iXX0=\",\"originalCode\":\"const app = require('../../app');\\r\\nconst server = require(\\\"supertest\\\")(app);\\r\\nconst jwt_decode = require('jwt-decode');\\r\\nconst Users = require('../../models/users');\\r\\n\\r\\nvar userToken;\\r\\nvar assistantToken;\\r\\nvar adminToken;\\r\\nconst admin = {\\r\\n \\\"firstname\\\": \\\"Admin\\\",\\r\\n \\\"lastname\\\": \\\"Admin\\\",\\r\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\r\\n \\\"password\\\": \\\"admin-password\\\"\\r\\n};\\r\\nconst assistant = {\\r\\n \\\"firstname\\\": \\\"Dinesh\\\",\\r\\n \\\"lastname\\\": \\\"Chandimal\\\",\\r\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\r\\n};\\r\\nconst tourist = {\\r\\n \\\"firstname\\\": \\\"Sunil\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\r\\n};\\r\\nconst signupAdmin = async () => {\\r\\n await Users.deleteMany({});\\r\\n await server\\r\\n .post(\\\"/users/signup/admin\\\")\\r\\n .send(admin);\\r\\n};\\r\\n\\r\\nconst getAdminToken = async () => {\\r\\n if (adminToken) {\\r\\n return adminToken;\\r\\n }\\r\\n await signupAdmin();\\r\\n var creds = {\\r\\n username: admin.email,\\r\\n password: admin.password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n adminToken = response.body.token;\\r\\n return adminToken;\\r\\n}\\r\\n\\r\\nconst addAssistant = async () => {\\r\\n if (!adminToken) {\\r\\n await getAdminToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/employees\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${adminToken}`)\\r\\n .send(assistant)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getAssistantToken = async () => {\\r\\n if (assistantToken) {\\r\\n return assistantToken;\\r\\n }\\r\\n const password = await addAssistant();\\r\\n var creds = {\\r\\n username: assistant.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n assistantToken = response.body.token;\\r\\n return assistantToken;\\r\\n}\\r\\n\\r\\nconst addTourist = async () => {\\r\\n if (!assistantToken) {\\r\\n await getAssistantToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/tourists\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${assistantToken}`)\\r\\n .send(tourist)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getTouristToken = async () => {\\r\\n if (userToken) {\\r\\n return userToken;\\r\\n }\\r\\n const password = await addTourist();\\r\\n var creds = {\\r\\n username: tourist.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n userToken = response.body.token;\\r\\n return userToken;\\r\\n}\\r\\n\\r\\nconst getExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Namal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\r\\n \\\"mobile\\\": \\\"981114844\\\",\\r\\n \\\"rommnumber\\\" : \\\"41\\\",\\r\\n\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n\\r\\n return tourist._id.toString();\\r\\n\\r\\n \\r\\n}\\r\\n\\r\\nconst getNonExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Kamal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n await tourist.remove();\\r\\n\\r\\n return tourist._id.toString();\\r\\n}\\r\\n\\r\\nconst decodeToken = (token) => {\\r\\n var decoded = jwt_decode(token);\\r\\n return decoded;\\r\\n}\\r\\n\\r\\nmodule.exports = {\\r\\n getAdminToken, getAssistantToken, getTouristToken, decodeToken, addTourist, getTouristToken ,getExistingId ,getNonExistingId\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/5d/user_helper_5d6019747344ffe72872c6622cdf23b3.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2692\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\user_helper.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13241,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":677,\"endOffset\":778,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"getAdminToken\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1089,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"addAssistant\",\"ranges\":[{\"startOffset\":1113,\"endOffset\":1339,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"getAssistantToken\",\"ranges\":[{\"startOffset\":1368,\"endOffset\":1686,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1708,\"endOffset\":1943,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristToken\",\"ranges\":[{\"startOffset\":1970,\"endOffset\":2264,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getExistingId\",\"ranges\":[{\"startOffset\":2289,\"endOffset\":2574,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getNonExistingId\",\"ranges\":[{\"startOffset\":2602,\"endOffset\":2862,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"decodeToken\",\"ranges\":[{\"startOffset\":2885,\"endOffset\":2950,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Places = require('../../models/visitingPlaces');\\n\\nconst mockPlaces = require('../mockData/places.data');\\n\\nconst initialPlaces = mockPlaces;\\n\\nconst addPlacesToDb = async () => {\\n const placeObjects = initialPlaces.map(place => new Places(place));\\n const promiseArray = placeObjects.map(place => place.save());\\n await Promise.all(promiseArray);\\n};\\n\\nconst getExistingId = async () => {\\n const newPlace = {\\n \\\"name\\\": \\\"Galle Dutch Fort\\\",\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\n \\\"location\\\": {\\n coordinates: [6.02453869574481, 80.21798550785017]\\n },\\n \\\"distance\\\": \\\"20km\\\",\\n \\\"timeToReach\\\": \\\"30min\\\",\\n \\\"images\\\": [],\\n \\\"methods\\\": ['Car']\\n };\\n const place = new Places(newPlace);\\n await place.save();\\n return place._id.toString();\\n};\\n\\nconst getNonExistingId = async () => {\\n const newPlace = {\\n \\\"name\\\": \\\"To be deleted\\\",\\n \\\"description\\\": \\\"Duis amet in ipsum ut.\\\",\\n \\\"location\\\": {\\n coordinates: [6.02453869574481, 80.21798550785017]\\n },\\n \\\"distance\\\": \\\"10km\\\",\\n \\\"timeToReach\\\": \\\"20min\\\",\\n \\\"images\\\": [],\\n \\\"methods\\\": ['Foot']\\n };\\n const place = new Places(newPlace);\\n await place.save();\\n await place.remove();\\n return place._id.toString();\\n};\\n\\nconst placesInDb = async () => {\\n const places = await Note.find({});\\n return places;\\n};\\n\\nmodule.exports = {\\n initialPlaces,\\n addPlacesToDb,\\n getExistingId,\\n getNonExistingId,\\n placesInDb\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlX2hlbHBlci5qcyJdLCJuYW1lcyI6WyJQbGFjZXMiLCJyZXF1aXJlIiwibW9ja1BsYWNlcyIsImluaXRpYWxQbGFjZXMiLCJhZGRQbGFjZXNUb0RiIiwicGxhY2VPYmplY3RzIiwibWFwIiwicGxhY2UiLCJwcm9taXNlQXJyYXkiLCJzYXZlIiwiUHJvbWlzZSIsImFsbCIsImdldEV4aXN0aW5nSWQiLCJuZXdQbGFjZSIsImNvb3JkaW5hdGVzIiwiX2lkIiwidG9TdHJpbmciLCJnZXROb25FeGlzdGluZ0lkIiwicmVtb3ZlIiwicGxhY2VzSW5EYiIsInBsYWNlcyIsIk5vdGUiLCJmaW5kIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsNkJBQUQsQ0FBdEI7O0FBQ0EsTUFBTUMsVUFBVSxHQUFHRCxPQUFPLENBQUMseUJBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsYUFBYSxHQUFHRCxVQUF0Qjs7QUFFQSxNQUFNRSxhQUFhLEdBQUcsWUFBWTtBQUM5QixRQUFNQyxZQUFZLEdBQUdGLGFBQWEsQ0FDN0JHLEdBRGdCLENBQ1pDLEtBQUssSUFBSSxJQUFJUCxNQUFKLENBQVdPLEtBQVgsQ0FERyxDQUFyQjtBQUVBLFFBQU1DLFlBQVksR0FBR0gsWUFBWSxDQUFDQyxHQUFiLENBQWlCQyxLQUFLLElBQUlBLEtBQUssQ0FBQ0UsSUFBTixFQUExQixDQUFyQjtBQUNBLFFBQU1DLE9BQU8sQ0FBQ0MsR0FBUixDQUFZSCxZQUFaLENBQU47QUFDSCxDQUxEOztBQU9BLE1BQU1JLGFBQWEsR0FBRyxZQUFZO0FBQzlCLFFBQU1DLFFBQVEsR0FBRztBQUNiLFlBQVEsa0JBREs7QUFFYixtQkFBZSwyTEFGRjtBQUdiLGdCQUFZO0FBQ1JDLE1BQUFBLFdBQVcsRUFBRSxDQUFDLGdCQUFELEVBQW1CLGlCQUFuQjtBQURMLEtBSEM7QUFNYixnQkFBWSxNQU5DO0FBT2IsbUJBQWUsT0FQRjtBQVFiLGNBQVUsRUFSRztBQVNiLGVBQVcsQ0FBQyxLQUFEO0FBVEUsR0FBakI7QUFXQSxRQUFNUCxLQUFLLEdBQUcsSUFBSVAsTUFBSixDQUFXYSxRQUFYLENBQWQ7QUFDQSxRQUFNTixLQUFLLENBQUNFLElBQU4sRUFBTjtBQUVBLFNBQU9GLEtBQUssQ0FBQ1EsR0FBTixDQUFVQyxRQUFWLEVBQVA7QUFDSCxDQWhCRDs7QUFrQkEsTUFBTUMsZ0JBQWdCLEdBQUcsWUFBWTtBQUNqQyxRQUFNSixRQUFRLEdBQUc7QUFDYixZQUFRLGVBREs7QUFFYixtQkFBZSx3QkFGRjtBQUdiLGdCQUFZO0FBQ1JDLE1BQUFBLFdBQVcsRUFBRSxDQUFDLGdCQUFELEVBQW1CLGlCQUFuQjtBQURMLEtBSEM7QUFNYixnQkFBWSxNQU5DO0FBT2IsbUJBQWUsT0FQRjtBQVFiLGNBQVUsRUFSRztBQVNiLGVBQVcsQ0FBQyxNQUFEO0FBVEUsR0FBakI7QUFXQSxRQUFNUCxLQUFLLEdBQUcsSUFBSVAsTUFBSixDQUFXYSxRQUFYLENBQWQ7QUFDQSxRQUFNTixLQUFLLENBQUNFLElBQU4sRUFBTjtBQUNBLFFBQU1GLEtBQUssQ0FBQ1csTUFBTixFQUFOO0FBRUEsU0FBT1gsS0FBSyxDQUFDUSxHQUFOLENBQVVDLFFBQVYsRUFBUDtBQUNILENBakJEOztBQW1CQSxNQUFNRyxVQUFVLEdBQUcsWUFBWTtBQUMzQixRQUFNQyxNQUFNLEdBQUcsTUFBTUMsSUFBSSxDQUFDQyxJQUFMLENBQVUsRUFBVixDQUFyQjtBQUNBLFNBQU9GLE1BQVA7QUFDSCxDQUhEOztBQUtBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYnJCLEVBQUFBLGFBRGE7QUFDRUMsRUFBQUEsYUFERjtBQUNpQlEsRUFBQUEsYUFEakI7QUFDZ0NLLEVBQUFBLGdCQURoQztBQUNrREUsRUFBQUE7QUFEbEQsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZXMgPSByZXF1aXJlKCcuLi8uLi9tb2RlbHMvdmlzaXRpbmdQbGFjZXMnKTtcclxuY29uc3QgbW9ja1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vY2tEYXRhL3BsYWNlcy5kYXRhJyk7XHJcblxyXG5jb25zdCBpbml0aWFsUGxhY2VzID0gbW9ja1BsYWNlcztcclxuXHJcbmNvbnN0IGFkZFBsYWNlc1RvRGIgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBwbGFjZU9iamVjdHMgPSBpbml0aWFsUGxhY2VzXHJcbiAgICAgICAgLm1hcChwbGFjZSA9PiBuZXcgUGxhY2VzKHBsYWNlKSk7XHJcbiAgICBjb25zdCBwcm9taXNlQXJyYXkgPSBwbGFjZU9iamVjdHMubWFwKHBsYWNlID0+IHBsYWNlLnNhdmUoKSk7XHJcbiAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlQXJyYXkpO1xyXG59XHJcblxyXG5jb25zdCBnZXRFeGlzdGluZ0lkID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgbmV3UGxhY2UgPSB7XHJcbiAgICAgICAgXCJuYW1lXCI6IFwiR2FsbGUgRHV0Y2ggRm9ydFwiLFxyXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEdWlzIGFtZXQgaW4gaXBzdW0gdXQgY29uc2VxdWF0LiBBbGlxdWlwIHF1aXMgcXVpcyBldCBsYWJvcmlzIG5vbiBtb2xsaXQgbmlzaSB1dCBtb2xsaXQgZnVnaWF0IG9jY2FlY2F0IGlkIG5vc3RydWQuIE1vbGxpdCBtb2xsaXQgYWxpcXVpcCByZXByZWhlbmRlcml0IHZvbHVwdGF0ZSBjb21tb2RvIGlkIG5vc3RydWQgbm9uLlwiLFxyXG4gICAgICAgIFwibG9jYXRpb25cIjoge1xyXG4gICAgICAgICAgICBjb29yZGluYXRlczogWzYuMDI0NTM4Njk1NzQ0ODEsIDgwLjIxNzk4NTUwNzg1MDE3XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJkaXN0YW5jZVwiOiBcIjIwa21cIixcclxuICAgICAgICBcInRpbWVUb1JlYWNoXCI6IFwiMzBtaW5cIixcclxuICAgICAgICBcImltYWdlc1wiOiBbXSxcclxuICAgICAgICBcIm1ldGhvZHNcIjogWydDYXInXVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHBsYWNlID0gbmV3IFBsYWNlcyhuZXdQbGFjZSk7XHJcbiAgICBhd2FpdCBwbGFjZS5zYXZlKCk7XHJcblxyXG4gICAgcmV0dXJuIHBsYWNlLl9pZC50b1N0cmluZygpO1xyXG59XHJcblxyXG5jb25zdCBnZXROb25FeGlzdGluZ0lkID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgbmV3UGxhY2UgPSB7XHJcbiAgICAgICAgXCJuYW1lXCI6IFwiVG8gYmUgZGVsZXRlZFwiLFxyXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEdWlzIGFtZXQgaW4gaXBzdW0gdXQuXCIsXHJcbiAgICAgICAgXCJsb2NhdGlvblwiOiB7XHJcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBbNi4wMjQ1Mzg2OTU3NDQ4MSwgODAuMjE3OTg1NTA3ODUwMTddXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcImRpc3RhbmNlXCI6IFwiMTBrbVwiLFxyXG4gICAgICAgIFwidGltZVRvUmVhY2hcIjogXCIyMG1pblwiLFxyXG4gICAgICAgIFwiaW1hZ2VzXCI6IFtdLFxyXG4gICAgICAgIFwibWV0aG9kc1wiOiBbJ0Zvb3QnXVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHBsYWNlID0gbmV3IFBsYWNlcyhuZXdQbGFjZSk7XHJcbiAgICBhd2FpdCBwbGFjZS5zYXZlKCk7XHJcbiAgICBhd2FpdCBwbGFjZS5yZW1vdmUoKTtcclxuXHJcbiAgICByZXR1cm4gcGxhY2UuX2lkLnRvU3RyaW5nKCk7XHJcbn1cclxuXHJcbmNvbnN0IHBsYWNlc0luRGIgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBwbGFjZXMgPSBhd2FpdCBOb3RlLmZpbmQoe30pO1xyXG4gICAgcmV0dXJuIHBsYWNlcztcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBpbml0aWFsUGxhY2VzLCBhZGRQbGFjZXNUb0RiLCBnZXRFeGlzdGluZ0lkLCBnZXROb25FeGlzdGluZ0lkLCBwbGFjZXNJbkRiXHJcbn0iXX0=\",\"originalCode\":\"const Places = require('../../models/visitingPlaces');\\r\\nconst mockPlaces = require('../mockData/places.data');\\r\\n\\r\\nconst initialPlaces = mockPlaces;\\r\\n\\r\\nconst addPlacesToDb = async () => {\\r\\n const placeObjects = initialPlaces\\r\\n .map(place => new Places(place));\\r\\n const promiseArray = placeObjects.map(place => place.save());\\r\\n await Promise.all(promiseArray);\\r\\n}\\r\\n\\r\\nconst getExistingId = async () => {\\r\\n const newPlace = {\\r\\n \\\"name\\\": \\\"Galle Dutch Fort\\\",\\r\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\r\\n \\\"location\\\": {\\r\\n coordinates: [6.02453869574481, 80.21798550785017]\\r\\n },\\r\\n \\\"distance\\\": \\\"20km\\\",\\r\\n \\\"timeToReach\\\": \\\"30min\\\",\\r\\n \\\"images\\\": [],\\r\\n \\\"methods\\\": ['Car']\\r\\n };\\r\\n const place = new Places(newPlace);\\r\\n await place.save();\\r\\n\\r\\n return place._id.toString();\\r\\n}\\r\\n\\r\\nconst getNonExistingId = async () => {\\r\\n const newPlace = {\\r\\n \\\"name\\\": \\\"To be deleted\\\",\\r\\n \\\"description\\\": \\\"Duis amet in ipsum ut.\\\",\\r\\n \\\"location\\\": {\\r\\n coordinates: [6.02453869574481, 80.21798550785017]\\r\\n },\\r\\n \\\"distance\\\": \\\"10km\\\",\\r\\n \\\"timeToReach\\\": \\\"20min\\\",\\r\\n \\\"images\\\": [],\\r\\n \\\"methods\\\": ['Foot']\\r\\n };\\r\\n const place = new Places(newPlace);\\r\\n await place.save();\\r\\n await place.remove();\\r\\n\\r\\n return place._id.toString();\\r\\n}\\r\\n\\r\\nconst placesInDb = async () => {\\r\\n const places = await Note.find({});\\r\\n return places;\\r\\n}\\r\\n\\r\\nmodule.exports = {\\r\\n initialPlaces, addPlacesToDb, getExistingId, getNonExistingId, placesInDb\\r\\n}\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/f7/place_helper_f736d6463224b7f5175e218faaaa4ce9.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"3229\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\place_helper.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":6530,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":6527,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"addPlacesToDb\",\"ranges\":[{\"startOffset\":258,\"endOffset\":442,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":313,\"endOffset\":339,\"count\":3}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":382,\"endOffset\":403,\"count\":3}],\"isBlockCoverage\":true},{\"functionName\":\"getExistingId\",\"ranges\":[{\"startOffset\":467,\"endOffset\":1014,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getNonExistingId\",\"ranges\":[{\"startOffset\":1042,\"endOffset\":1448,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"placesInDb\",\"ranges\":[{\"startOffset\":1470,\"endOffset\":1540,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const places = [{\\n \\\"name\\\": \\\"Mirissa\\\",\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\n \\\"location\\\": {\\n \\\"coordinates\\\": [5.9447392257447005, 80.45886764887479]\\n },\\n \\\"distance\\\": \\\"20km\\\",\\n \\\"timeToReach\\\": \\\"30min\\\",\\n \\\"images\\\": [],\\n \\\"methods\\\": ['Bus', 'Car', 'Foot']\\n}, {\\n \\\"name\\\": \\\"Unawatuna\\\",\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\n \\\"location\\\": {\\n \\\"coordinates\\\": [6.009847327808601, 80.24929493589147]\\n },\\n \\\"distance\\\": \\\"20km\\\",\\n \\\"timeToReach\\\": \\\"30min\\\",\\n \\\"images\\\": [],\\n \\\"methods\\\": ['Bus', 'Foot']\\n}, {\\n \\\"name\\\": \\\"Jungle Beach\\\",\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\n \\\"location\\\": {\\n \\\"coordinates\\\": [6.0175219725350635, 80.23893195618767]\\n },\\n \\\"distance\\\": \\\"20km\\\",\\n \\\"timeToReach\\\": \\\"30min\\\",\\n \\\"images\\\": [],\\n \\\"methods\\\": ['Foot']\\n}];\\nmodule.exports = places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlcy5kYXRhLmpzIl0sIm5hbWVzIjpbInBsYWNlcyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE1BQU0sR0FBRyxDQUNYO0FBQ0ksVUFBUSxTQURaO0FBRUksaUJBQWUsMkxBRm5CO0FBR0ksY0FBWTtBQUNSLG1CQUFlLENBQUMsa0JBQUQsRUFBcUIsaUJBQXJCO0FBRFAsR0FIaEI7QUFNSSxjQUFZLE1BTmhCO0FBT0ksaUJBQWUsT0FQbkI7QUFRSSxZQUFVLEVBUmQ7QUFTSSxhQUFXLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxNQUFmO0FBVGYsQ0FEVyxFQVlYO0FBQ0ksVUFBUSxXQURaO0FBRUksaUJBQWUsMkxBRm5CO0FBR0ksY0FBWTtBQUNSLG1CQUFlLENBQUMsaUJBQUQsRUFBb0IsaUJBQXBCO0FBRFAsR0FIaEI7QUFNSSxjQUFZLE1BTmhCO0FBT0ksaUJBQWUsT0FQbkI7QUFRSSxZQUFVLEVBUmQ7QUFTSSxhQUFXLENBQUMsS0FBRCxFQUFRLE1BQVI7QUFUZixDQVpXLEVBdUJYO0FBQ0ksVUFBUSxjQURaO0FBRUksaUJBQWUsMkxBRm5CO0FBR0ksY0FBWTtBQUNSLG1CQUFlLENBQUMsa0JBQUQsRUFBcUIsaUJBQXJCO0FBRFAsR0FIaEI7QUFNSSxjQUFZLE1BTmhCO0FBT0ksaUJBQWUsT0FQbkI7QUFRSSxZQUFVLEVBUmQ7QUFTSSxhQUFXLENBQUMsTUFBRDtBQVRmLENBdkJXLENBQWY7QUFvQ0FDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkYsTUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBwbGFjZXMgPSBbXHJcbiAgICB7XHJcbiAgICAgICAgXCJuYW1lXCI6IFwiTWlyaXNzYVwiLFxyXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEdWlzIGFtZXQgaW4gaXBzdW0gdXQgY29uc2VxdWF0LiBBbGlxdWlwIHF1aXMgcXVpcyBldCBsYWJvcmlzIG5vbiBtb2xsaXQgbmlzaSB1dCBtb2xsaXQgZnVnaWF0IG9jY2FlY2F0IGlkIG5vc3RydWQuIE1vbGxpdCBtb2xsaXQgYWxpcXVpcCByZXByZWhlbmRlcml0IHZvbHVwdGF0ZSBjb21tb2RvIGlkIG5vc3RydWQgbm9uLlwiLFxyXG4gICAgICAgIFwibG9jYXRpb25cIjoge1xyXG4gICAgICAgICAgICBcImNvb3JkaW5hdGVzXCI6IFs1Ljk0NDczOTIyNTc0NDcwMDUsIDgwLjQ1ODg2NzY0ODg3NDc5XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJkaXN0YW5jZVwiOiBcIjIwa21cIixcclxuICAgICAgICBcInRpbWVUb1JlYWNoXCI6IFwiMzBtaW5cIixcclxuICAgICAgICBcImltYWdlc1wiOiBbXSxcclxuICAgICAgICBcIm1ldGhvZHNcIjogWydCdXMnLCAnQ2FyJywgJ0Zvb3QnXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBcIm5hbWVcIjogXCJVbmF3YXR1bmFcIixcclxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRHVpcyBhbWV0IGluIGlwc3VtIHV0IGNvbnNlcXVhdC4gQWxpcXVpcCBxdWlzIHF1aXMgZXQgbGFib3JpcyBub24gbW9sbGl0IG5pc2kgdXQgbW9sbGl0IGZ1Z2lhdCBvY2NhZWNhdCBpZCBub3N0cnVkLiBNb2xsaXQgbW9sbGl0IGFsaXF1aXAgcmVwcmVoZW5kZXJpdCB2b2x1cHRhdGUgY29tbW9kbyBpZCBub3N0cnVkIG5vbi5cIixcclxuICAgICAgICBcImxvY2F0aW9uXCI6IHtcclxuICAgICAgICAgICAgXCJjb29yZGluYXRlc1wiOiBbNi4wMDk4NDczMjc4MDg2MDEsIDgwLjI0OTI5NDkzNTg5MTQ3XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJkaXN0YW5jZVwiOiBcIjIwa21cIixcclxuICAgICAgICBcInRpbWVUb1JlYWNoXCI6IFwiMzBtaW5cIixcclxuICAgICAgICBcImltYWdlc1wiOiBbXSxcclxuICAgICAgICBcIm1ldGhvZHNcIjogWydCdXMnLCAnRm9vdCddXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIFwibmFtZVwiOiBcIkp1bmdsZSBCZWFjaFwiLFxyXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEdWlzIGFtZXQgaW4gaXBzdW0gdXQgY29uc2VxdWF0LiBBbGlxdWlwIHF1aXMgcXVpcyBldCBsYWJvcmlzIG5vbiBtb2xsaXQgbmlzaSB1dCBtb2xsaXQgZnVnaWF0IG9jY2FlY2F0IGlkIG5vc3RydWQuIE1vbGxpdCBtb2xsaXQgYWxpcXVpcCByZXByZWhlbmRlcml0IHZvbHVwdGF0ZSBjb21tb2RvIGlkIG5vc3RydWQgbm9uLlwiLFxyXG4gICAgICAgIFwibG9jYXRpb25cIjoge1xyXG4gICAgICAgICAgICBcImNvb3JkaW5hdGVzXCI6IFs2LjAxNzUyMTk3MjUzNTA2MzUsIDgwLjIzODkzMTk1NjE4NzY3XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJkaXN0YW5jZVwiOiBcIjIwa21cIixcclxuICAgICAgICBcInRpbWVUb1JlYWNoXCI6IFwiMzBtaW5cIixcclxuICAgICAgICBcImltYWdlc1wiOiBbXSxcclxuICAgICAgICBcIm1ldGhvZHNcIjogWydGb290J11cclxuICAgIH0sXHJcbl07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHBsYWNlczsiXX0=\",\"originalCode\":\"const places = [\\r\\n {\\r\\n \\\"name\\\": \\\"Mirissa\\\",\\r\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\r\\n \\\"location\\\": {\\r\\n \\\"coordinates\\\": [5.9447392257447005, 80.45886764887479]\\r\\n },\\r\\n \\\"distance\\\": \\\"20km\\\",\\r\\n \\\"timeToReach\\\": \\\"30min\\\",\\r\\n \\\"images\\\": [],\\r\\n \\\"methods\\\": ['Bus', 'Car', 'Foot']\\r\\n },\\r\\n {\\r\\n \\\"name\\\": \\\"Unawatuna\\\",\\r\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\r\\n \\\"location\\\": {\\r\\n \\\"coordinates\\\": [6.009847327808601, 80.24929493589147]\\r\\n },\\r\\n \\\"distance\\\": \\\"20km\\\",\\r\\n \\\"timeToReach\\\": \\\"30min\\\",\\r\\n \\\"images\\\": [],\\r\\n \\\"methods\\\": ['Bus', 'Foot']\\r\\n },\\r\\n {\\r\\n \\\"name\\\": \\\"Jungle Beach\\\",\\r\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\r\\n \\\"location\\\": {\\r\\n \\\"coordinates\\\": [6.0175219725350635, 80.23893195618767]\\r\\n },\\r\\n \\\"distance\\\": \\\"20km\\\",\\r\\n \\\"timeToReach\\\": \\\"30min\\\",\\r\\n \\\"images\\\": [],\\r\\n \\\"methods\\\": ['Foot']\\r\\n },\\r\\n];\\r\\n\\r\\nmodule.exports = places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c7/placesdata_c7d929916abb793b06246bc83618a0c3.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"3230\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\mockData\\\\places.data.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4573,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4570,\"count\":1}],\"isBlockCoverage\":true}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":14,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1614411965596,\"runtime\":2291,\"slow\":false,\"start\":1614411963305},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\places.test.js\",\"testResults\":[{\"ancestorTitles\":[\"Place Model\"],\"duration\":1,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Place Model Place model exists\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Place model exists\"},{\"ancestorTitles\":[\"GET /places\"],\"duration\":11,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /places requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /places\"],\"duration\":24,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /places with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /places\"],\"duration\":11,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"POST /places\"],\"duration\":48,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /places\"],\"duration\":28,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places with invalid Authorization - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with invalid Authorization - 403\"},{\"ancestorTitles\":[\"POST /places\"],\"duration\":23,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places already existing - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"already existing - 403\"},{\"ancestorTitles\":[\"POST /places\"],\"duration\":24,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places validation failed - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"validation failed - 403\"},{\"ancestorTitles\":[\"PUT /places\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /places does not support - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"does not support - 403\"},{\"ancestorTitles\":[\"POST /places/search\"],\"duration\":10,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places/search requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"POST /places/search\"],\"duration\":39,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places/search with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"POST /places/search\"],\"duration\":19,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places/search with Authorization - another one - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - another one - 200\"},{\"ancestorTitles\":[\"DELETE /places\"],\"duration\":9,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /places requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"DELETE /places\"],\"duration\":18,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /places with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMsbUJBQUQsQ0FBaEM7O0FBQ0EsSUFBSU0sT0FBTyxHQUFHTixPQUFPLENBQUMsaUJBQUQsQ0FBckI7O0FBQ0EsSUFBSU8sU0FBUyxHQUFHUCxPQUFPLENBQUMsb0JBQUQsQ0FBUCxDQUE4Qk0sT0FBOUIsQ0FBaEI7O0FBQ0EsSUFBSUUsWUFBWSxHQUFHUixPQUFPLENBQUMsZUFBRCxDQUExQjs7QUFDQSxJQUFJUyxNQUFNLEdBQUdULE9BQU8sQ0FBQyxRQUFELENBQXBCOztBQUNBLElBQUlVLFFBQVEsR0FBR1YsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsTUFBTVcsUUFBUSxHQUFHWCxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQUEsT0FBTyxDQUFDLFFBQUQsQ0FBUCxDQUFrQlksTUFBbEI7O0FBRUEsSUFBSUMsVUFBVSxHQUFHYixPQUFPLENBQUMscUJBQUQsQ0FBeEI7O0FBQ0EsSUFBSWMsY0FBYyxHQUFHZCxPQUFPLENBQUMseUJBQUQsQ0FBNUI7O0FBQ0EsSUFBSWUsV0FBVyxHQUFHZixPQUFPLENBQUMsc0JBQUQsQ0FBekI7O0FBQ0EsSUFBSWdCLGNBQWMsR0FBR2hCLE9BQU8sQ0FBQyx5QkFBRCxDQUE1Qjs7QUFDQSxJQUFJaUIsYUFBYSxHQUFHakIsT0FBTyxDQUFDLHdCQUFELENBQTNCOztBQUNBLElBQUlrQixlQUFlLEdBQUdsQixPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBRUEsSUFBSW1CLEdBQUcsR0FBR2xCLE9BQU8sRUFBakIsQyxDQUVBOztBQUNBa0IsR0FBRyxDQUFDQyxHQUFKLENBQVEsT0FBUixFQUFpQmpCLElBQUksQ0FBQ2tCLElBQUwsQ0FBVUMsU0FBVixFQUFxQixPQUFyQixDQUFqQjtBQUNBSCxHQUFHLENBQUNDLEdBQUosQ0FBUSxhQUFSLEVBQXVCLE1BQXZCO0FBQ0FELEdBQUcsQ0FBQ0ksR0FBSixDQUFRckIsSUFBSSxFQUFaO0FBQ0FpQixHQUFHLENBQUNJLEdBQUosQ0FBUWIsUUFBUSxDQUFDYyxVQUFULEVBQVI7QUFFQUwsR0FBRyxDQUFDSSxHQUFKLENBQVFuQixVQUFVLENBQUNxQixJQUFYLEVBQVI7QUFFQU4sR0FBRyxDQUFDSSxHQUFKLENBQVFmLFlBQVksQ0FBQyxvQkFBRCxDQUFwQixFLENBQ0E7O0FBQ0FXLEdBQUcsQ0FBQ0ksR0FBSixDQUFRdEIsT0FBTyxDQUFDd0IsSUFBUixFQUFSO0FBQ0FOLEdBQUcsQ0FBQ0ksR0FBSixDQUFRdEIsT0FBTyxDQUFDeUIsVUFBUixDQUFtQjtBQUFFQyxFQUFBQSxRQUFRLEVBQUU7QUFBWixDQUFuQixDQUFSO0FBQ0FSLEdBQUcsQ0FBQ0ksR0FBSixDQUFRZixZQUFZLEVBQXBCLEUsQ0FDQTs7QUFDQVcsR0FBRyxDQUFDSSxHQUFKLENBQVF0QixPQUFPLENBQUMyQixNQUFSLENBQWV6QixJQUFJLENBQUNrQixJQUFMLENBQVVDLFNBQVYsRUFBcUIsT0FBckIsQ0FBZixDQUFSO0FBRUEsSUFBSU8sR0FBRyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBdEI7O0FBQ0EsSUFBSUYsT0FBTyxDQUFDQyxHQUFSLENBQVlFLFFBQVosS0FBeUIsTUFBN0IsRUFBcUM7QUFDbkNKLEVBQUFBLEdBQUcsR0FBR0MsT0FBTyxDQUFDQyxHQUFSLENBQVlHLFlBQWxCO0FBQ0Q7O0FBQ0R2QixRQUFRLENBQUN3QixPQUFULENBQWlCTixHQUFqQixFQUFzQjtBQUFFTyxFQUFBQSxlQUFlLEVBQUUsSUFBbkI7QUFBeUJDLEVBQUFBLGNBQWMsRUFBRSxJQUF6QztBQUErQ0MsRUFBQUEsa0JBQWtCLEVBQUU7QUFBbkUsQ0FBdEIsRUFBaUdDLElBQWpHLENBQXVHQyxFQUFELElBQVEsQ0FDN0csQ0FERCxFQUNJQyxHQUFELElBQVM7QUFDVixNQUFJQSxHQUFKLEVBQVM7QUFDUEMsSUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksaUNBQVo7QUFDRCxHQUZELE1BRU87QUFDTEQsSUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVkseUJBQVo7QUFDRDtBQUNGLENBUEQ7QUFTQXhCLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFFBQVIsRUFBa0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/01/app_010e21b7416079df77678cc6cb70a530.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nvar upload = require('../controllers/upload');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\", authenticate.verifyUser, upload.UploadUserImage);\\nuserRouter.get('/logout', authenticate.verifyUser, userController.logout);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsInVwbG9hZCIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwiVXBsb2FkVXNlckltYWdlIiwiZ2V0IiwibG9nb3V0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLElBQUlJLE1BQU0sR0FBR0osT0FBTyxDQUFDLHVCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUssRUFBQUE7QUFBRixJQUFrQkwsT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlNLFlBQVksR0FBR04sT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlPLGVBQWUsR0FBR1AsT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlRLGNBQWMsR0FBR1IsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1TLElBQUksR0FBR1QsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1MsR0FBWCxDQUFlUCxVQUFVLENBQUNRLElBQVgsRUFBZjtBQUVBVixVQUFVLENBQUNXLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZixVQUFVLENBQUNnQixJQUFYLENBQWdCLGVBQWhCLEVBQWlDUixJQUFJLENBQUNJLGVBQXRDLEVBQXVETCxjQUFjLENBQUNVLFdBQXRFO0FBRUFqQixVQUFVLENBQUNnQixJQUFYLENBQWdCLFFBQWhCLEVBQTBCUixJQUFJLENBQUNJLGVBQS9CLEVBQWdETCxjQUFjLENBQUNXLEtBQS9EO0FBRUFsQixVQUFVLENBQUNnQixJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBcEIsVUFBVSxDQUFDZ0IsSUFBWCxDQUFnQiwyQkFBaEIsRUFBNENYLFlBQVksQ0FBQ2MsVUFBekQsRUFBcUVoQixNQUFNLENBQUNrQixlQUE1RTtBQUVBckIsVUFBVSxDQUFDc0IsR0FBWCxDQUFlLFNBQWYsRUFBeUJqQixZQUFZLENBQUNjLFVBQXRDLEVBQWtEWixjQUFjLENBQUNnQixNQUFqRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJ6QixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxudmFyIHVwbG9hZCA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3VwbG9hZCcpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG52YXIgdXNlckNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy91c2VyQ29udHJvbGxlcicpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcblxyXG51c2VyUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG51c2VyUm91dGVyLm9wdGlvbnMoJyonLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcblxyXG51c2VyUm91dGVyLnBvc3QoJy9zaWdudXAvYWRtaW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIuc2lnbnVwQWRtaW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvbG9naW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIubG9naW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvY2hhbmdlcGFzc293b3JkLzppZCcsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVzZXJDb250cm9sbGVyLmNoYW5nZVBhc3Nvd29yZCk7XHJcblxyXG51c2VyUm91dGVyLnBvc3QoXCIvdXBkYXRlcHJvZmlsZXBpY3R1cmUvOmlkXCIsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVwbG9hZC5VcGxvYWRVc2VySW1hZ2UpO1xyXG5cclxudXNlclJvdXRlci5nZXQoJy9sb2dvdXQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5sb2dvdXQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nvar upload = require('../controllers/upload');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\",authenticate.verifyUser, upload.UploadUserImage);\\r\\n\\r\\nuserRouter.get('/logout',authenticate.verifyUser, userController.logout);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/a6/userRouter_a6221ff3be20743fe1c0fd1dc9fd8435.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4566,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4563,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":606,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const sharp = require('sharp');\\n\\nconst uid = require('uid');\\n\\nconst fs = require('fs');\\n\\nconst Users = require('../models/users');\\n\\nconst Places = require('../models/visitingPlaces');\\n\\nconst uploadFile = async (req, res) => {\\n try {\\n await upload(req, res);\\n\\n if (req.file == undefined) {\\n return res.send(`You must select a file.`);\\n }\\n\\n return res.send(`File has been uploaded.`);\\n } catch (error) {\\n return res.send(`Error when trying upload image: ${error}`);\\n }\\n};\\n\\nconst UploadUserImage = async (req, res, next) => {\\n try {\\n const user_id = req.params._id;\\n const user = await Users.findById(user_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/userImages/${imageUrl}`;\\n let previousImagePath = `images/userImages/${user.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'profile.png';\\n }\\n\\n user.image = imageUrl;\\n await user.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nconst uploadPlaceImage = async (req, res, next) => {\\n try {\\n const place_id = req.params._id;\\n const user = await Places.findById(place_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/placeImages/${imageUrl}`;\\n let previousImagePath = `images/placeImages/${place.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'image.png';\\n }\\n\\n place.image = imageUrl;\\n await place.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nexports.UploadUserImage = UploadUserImage;\\nexports.uploadFile = uploadFile;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVwbG9hZC5qcyJdLCJuYW1lcyI6WyJzaGFycCIsInJlcXVpcmUiLCJ1aWQiLCJmcyIsIlVzZXJzIiwiUGxhY2VzIiwidXBsb2FkRmlsZSIsInJlcSIsInJlcyIsInVwbG9hZCIsImZpbGUiLCJ1bmRlZmluZWQiLCJzZW5kIiwiZXJyb3IiLCJVcGxvYWRVc2VySW1hZ2UiLCJuZXh0IiwidXNlcl9pZCIsInBhcmFtcyIsIl9pZCIsInVzZXIiLCJmaW5kQnlJZCIsImltYWdlVXJsIiwib3JpZ2luYWxuYW1lIiwiZmlsZW5hbWUiLCJwcmV2aW91c0ltYWdlUGF0aCIsImltYWdlIiwiaW1hZ2VFeGlzdCIsImV4aXN0c1N5bmMiLCJkZWxldGVJbWFnZSIsInBhdGgiLCJyb3RhdGUiLCJyZXNpemUiLCJ0b0ZpbGUiLCJ1bmxpbmsiLCJlcnIiLCJzYXZlIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwibWVzc2FnZSIsInVwbG9hZFBsYWNlSW1hZ2UiLCJwbGFjZV9pZCIsInBsYWNlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsT0FBRCxDQUFyQjs7QUFDQSxNQUFNQyxHQUFHLEdBQUdELE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLElBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsS0FBSyxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBckI7O0FBQ0EsTUFBTUksTUFBTSxHQUFHSixPQUFPLENBQUMsMEJBQUQsQ0FBdEI7O0FBRUEsTUFBTUssVUFBVSxHQUFHLE9BQU9DLEdBQVAsRUFBWUMsR0FBWixLQUFvQjtBQUNuQyxNQUFJO0FBQ0EsVUFBTUMsTUFBTSxDQUFDRixHQUFELEVBQU1DLEdBQU4sQ0FBWjs7QUFFQSxRQUFJRCxHQUFHLENBQUNHLElBQUosSUFBWUMsU0FBaEIsRUFBMkI7QUFDdkIsYUFBT0gsR0FBRyxDQUFDSSxJQUFK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QUFkLEVBQThCLGtCQUE5QjtBQUNBN0IsSUFBQUEsR0FBRyxDQUFDOEIsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCQyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNIO0FBQ0osQ0F6Q0Q7O0FBMkNBSSxPQUFPLENBQUM5QixlQUFSLEdBQTBCQSxlQUExQjtBQUNBOEIsT0FBTyxDQUFDdEMsVUFBUixHQUFxQkEsVUFBckIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzaGFycCA9IHJlcXVpcmUoJ3NoYXJwJyk7XHJcbmNvbnN0IHVpZCA9IHJlcXVpcmUoJ3VpZCcpO1xyXG5jb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XHJcbmNvbnN0IFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFBsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpXHJcblxyXG5jb25zdCB1cGxvYWRGaWxlID0gYXN5bmMgKHJlcSwgcmVzKSA9PiB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHVwbG9hZChyZXEsIHJlcyk7XHJcblxyXG4gICAgICAgIGlmIChyZXEuZmlsZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBZb3UgbXVzdCBzZWxlY3QgYSBmaWxlLmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBGaWxlIGhhcyBiZWVuIHVwbG9hZGVkLmApO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICByZXR1cm4gcmVzLnNlbmQoYEVycm9yIHdoZW4gdHJ5aW5nIHVwbG9hZCBpbWFnZTogJHtlcnJvcn1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IFVwbG9hZFVzZXJJbWFnZSA9IGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBjb25zdCB1c2VyX2lkID0gcmVxLnBhcmFtcy5faWQ7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IGF3YWl0IFVzZXJzLmZpbmRCeUlkKHVzZXJfaWQpO1xyXG5cclxuICAgICAgICBsZXQgaW1hZ2VVcmw7XHJcbiAgICAgICAgaWYgKHJlcS5maWxlKSB7XHJcbiAgICAgICAgICAgIGltYWdlVXJsID0gYCR7dWlkKCl9X18ke3JlcS5maWxlLm9yaWdpbmFsbmFtZX1gO1xyXG4gICAgICAgICAgICBsZXQgZmlsZW5hbWUgPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHtpbWFnZVVybH1gO1xyXG4gICAgICAgICAgICBsZXQgcHJldmlvdXNJbWFnZVBhdGggPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHt1c2VyLmltYWdlfWA7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpbWFnZUV4aXN0ID0gZnMuZXhpc3RzU3luYyhwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIGlmIChpbWFnZUV4aXN0KSB7XHJcbiAgICAgICAgICAgICAgICBkZWxldGVJbWFnZShwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYXdhaXQgc2hhcnAocmVxLmZpbGUucGF0aClcclxuICAgICAgICAgICAgICAgIC5yb3RhdGUoKVxyXG4gICAgICAgICAgICAgICAgLnJlc2l6ZSg1MDAsIDUwMClcclxuICAgICAgICAgICAgICAgIC50b0ZpbGUoZmlsZW5hbWUpO1xyXG5cclxuICAgICAgICAgICAgZnMudW5saW5rKHJlcS5maWxlLnBhdGgsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9ICdwcm9maWxlLnBuZyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1c2VyLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgdXNlci5zYXZlKCk7XHJcblxyXG5cclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1N1Y2Nlc3NmdWxseSB1cGRhdGVkIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcblxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgdXBkYXRpbmcgcHJvZmlsZSBwaWN0dXJlJyB9KTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IHVwbG9hZFBsYWNlSW1hZ2UgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfaWQgPSByZXEucGFyYW1zLl9pZDtcclxuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgUGxhY2VzLmZpbmRCeUlkKHBsYWNlX2lkKTtcclxuXHJcbiAgICAgICAgbGV0IGltYWdlVXJsO1xyXG4gICAgICAgIGlmIChyZXEuZmlsZSkge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9IGAke3VpZCgpfV9fJHtyZXEuZmlsZS5vcmlnaW5hbG5hbWV9YDtcclxuICAgICAgICAgICAgbGV0IGZpbGVuYW1lID0gYGltYWdlcy9wbGFjZUltYWdlcy8ke2ltYWdlVXJsfWA7XHJcbiAgICAgICAgICAgIGxldCBwcmV2aW91c0ltYWdlUGF0aCA9IGBpbWFnZXMvcGxhY2VJbWFnZXMvJHtwbGFjZS5pbWFnZX1gO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaW1hZ2VFeGlzdCA9IGZzLmV4aXN0c1N5bmMocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICBpZiAoaW1hZ2VFeGlzdCkge1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlSW1hZ2UocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGF3YWl0IHNoYXJwKHJlcS5maWxlLnBhdGgpXHJcbiAgICAgICAgICAgICAgICAucm90YXRlKClcclxuICAgICAgICAgICAgICAgIC5yZXNpemUoNTAwLCA1MDApXHJcbiAgICAgICAgICAgICAgICAudG9GaWxlKGZpbGVuYW1lKTtcclxuXHJcbiAgICAgICAgICAgIGZzLnVubGluayhyZXEuZmlsZS5wYXRoLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaW1hZ2VVcmwgPSAnaW1hZ2UucG5nJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBsYWNlLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgcGxhY2Uuc2F2ZSgpO1xyXG5cclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6ICdTdWNjZXNzZnVsbHkgdXBkYXRlZCBwcm9maWxlIHBpY3R1cmUnIH0pO1xyXG5cclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnRzLlVwbG9hZFVzZXJJbWFnZSA9IFVwbG9hZFVzZXJJbWFnZTtcclxuZXhwb3J0cy51cGxvYWRGaWxlID0gdXBsb2FkRmlsZTsiXX0=\",\"originalCode\":\"const sharp = require('sharp');\\r\\nconst uid = require('uid');\\r\\nconst fs = require('fs');\\r\\nconst Users = require('../models/users');\\r\\nconst Places = require('../models/visitingPlaces')\\r\\n\\r\\nconst uploadFile = async (req, res) => {\\r\\n try {\\r\\n await upload(req, res);\\r\\n\\r\\n if (req.file == undefined) {\\r\\n return res.send(`You must select a file.`);\\r\\n }\\r\\n\\r\\n return res.send(`File has been uploaded.`);\\r\\n } catch (error) {\\r\\n return res.send(`Error when trying upload image: ${error}`);\\r\\n }\\r\\n};\\r\\n\\r\\nconst UploadUserImage = async (req, res, next) => {\\r\\n try {\\r\\n const user_id = req.params._id;\\r\\n const user = await Users.findById(user_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/userImages/${imageUrl}`;\\r\\n let previousImagePath = `images/userImages/${user.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'profile.png';\\r\\n }\\r\\n\\r\\n user.image = imageUrl;\\r\\n await user.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nconst uploadPlaceImage = async (req, res, next) => {\\r\\n try {\\r\\n const place_id = req.params._id;\\r\\n const user = await Places.findById(place_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/placeImages/${imageUrl}`;\\r\\n let previousImagePath = `images/placeImages/${place.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'image.png';\\r\\n }\\r\\n\\r\\n place.image = imageUrl;\\r\\n await place.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nexports.UploadUserImage = UploadUserImage;\\r\\nexports.uploadFile = uploadFile;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/70/upload_70c590d2bd713c9562e3916387ba4116.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\upload.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":12791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":12788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"uploadFile\",\"ranges\":[{\"startOffset\":293,\"endOffset\":580,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"UploadUserImage\",\"ranges\":[{\"startOffset\":607,\"endOffset\":1704,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"uploadPlaceImage\",\"ranges\":[{\"startOffset\":1732,\"endOffset\":2835,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fa/users_fa250a82bd410ffb1909f920e93eed19.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2324\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c4/visitingPlaces_c4ccc91c117df8c4aeada72a82534688.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2335\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Moderater Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFBVCxDQUF1Qk4sSUFBSSxDQUFDTSxhQUFMLEVBQXZCO0FBQ0FWLFFBQVEsQ0FBQ1csZUFBVCxDQUF5QlAsSUFBSSxDQUFDTyxlQUFMLEVBQXpCOztBQUVBQyxPQUFPLENBQUNDLFFBQVIsR0FBb0JDLElBQUQsSUFBVTtBQUN6QixTQUFPUCxHQUFHLENBQUNRLElBQUosQ0FBU0QsSUFBVCxFQUFlRSxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsU0FBM0IsRUFDSDtBQUFFQyxJQUFBQSxTQUFTLEVBQUU7QUFBYixHQURHLENBQVA7QUFFSCxDQUhEOztBQUtBLElBQUlDLElBQUksR0FBRyxFQUFYO0FBQ0FBLElBQUksQ0FBQ0MsY0FBTCxHQUFzQmYsVUFBVSxDQUFDZ0IsMkJBQVgsRUFBdEI7QUFDQUYsSUFBSSxDQUFDRyxXQUFMLEdBQW1CUCxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsU0FBL0I7QUFFQU4sT0FBTyxDQUFDWSxXQUFSLEdBQXNCeEIsUUFBUSxDQUFDUSxHQUFULENBQWEsSUFBSUgsV0FBSixDQUFnQmUsSUFBaEIsRUFDL0IsQ0FBQ0ssV0FBRCxFQUFjQyxJQUFkLEtBQXVCO0FBQ25CdEIsRUFBQUEsSUFBSSxDQUFDdUIsT0FBTCxDQUFhO0FBQUVDLElBQUFBLEdBQUcsRUFBRUgsV0FBVyxDQUFDRztBQUFuQixHQUFiLEVBQXVDLENBQUNDLEdBQUQsRUFBTWYsSUFBTixLQUFlO0FBQ2xELFFBQUllLEdBQUosRUFBUztBQUNMLGFBQU9ILElBQUksQ0FBQ0csR0FBRCxFQUFNLEtBQU4sQ0FBWDtBQUNILEtBRkQsTUFHSyxJQUFJZixJQUFKLEVBQVU7QUFDWCxhQUFPWSxJQUFJLENBQUMsSUFBRCxFQUFPWixJQUFQLENBQVg7QUFDSCxLQUZJLE1BR0E7QUFDRCxhQUFPWSxJQUFJLENBQUMsSUFBRCxFQUFPLEtBQVAsQ0FBWDtBQUNIO0FBQ0osR0FWRDtBQVdILENBYjhCLENBQWIsQ0FBdEI7QUFlQWQsT0FBTyxDQUFDa0IsVUFBUixHQUFxQjlCLFFBQVEsQ0FBQ1MsWUFBVCxDQUFzQixLQUF0QixFQUE2QjtBQUFFc0IsRUFBQUEsT0FBTyxFQUFFO0FBQVgsQ0FBN0IsQ0FBckI7O0FBRUFuQixPQUFPLENBQUNvQixXQUFSLEdBQXNCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3RDLE1BQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsT0FBckIsRUFBOEI7QUFDMUIsV0FBT0QsSUFBSSxFQUFYO0FBQ0gsR0FGRCxNQUdLLElBQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsT0FBckIsRUFBOEI7QUFDL0JQLElBQUFBLEdBQUcsR0FBRyxJQUFJUSxLQUFKLENBQVUsbURBQVYsQ0FBTjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLE1BQUosR0FBYSxHQUFiO0FBQ0EsV0FBT0gsSUFBSSxDQUFDTixHQUFELENBQVg7QUFDSCxHQUpJLE1BS0E7QUFDREEsSUFBQUEsR0FBRyxHQUFHLElBQUlRLEtBQUosQ0FBVSw0QkFBVixDQUFOO0FBQ0FSLElBQUFBLEdBQUcsQ0FBQ1MsTUFBSixHQUFhLEdBQWI7QUFDQSxXQUFPSCxJQUFJLENBQUNOLEdBQUQsQ0FBWDtBQUNIO0FBQ0osQ0FkRDs7QUFnQkFqQixPQUFPLENBQUMyQixlQUFSLEdBQTBCLENBQUNOLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQzFDLE1BQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsTUFBckIsRUFBNkI7QUFDekIsV0FBT0QsSUFBSSxFQUFYO0FBQ0gsR0FGRCxNQUdLLElBQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsTUFBckIsRUFBNkI7QUFDOUJQLElBQUFBLEdBQUcsR0FBRyxJQUFJUSxLQUFKLENBQVUsbURBQVYsQ0FBTjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLE1BQUosR0FBYSxHQUFiO0FBQ0EsV0FBT0gsSUFBSSxDQUFDTixHQUFELENBQVg7QUFDSCxHQUpJLE1BS0E7QUFDREEsSUFBQUEsR0FBRyxHQUFHLElBQUlRLEtBQUosQ0FBVSxnQ0FBVixDQUFOO0FBQ0FSLElBQUFBLEdBQUcsQ0FBQ1MsTUFBSixHQUFhLEdBQWI7QUFDQSxXQUFPSCxJQUFJLENBQUNOLEdBQUQsQ0FBWDtBQUNIO0FBQ0osQ0FkRCIsInNvdXJjZXNDb250ZW50IjpbInZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBMb2NhbFN0cmF0ZWd5ID0gcmVxdWlyZSgncGFzc3BvcnQtbG9jYWwnKS5TdHJhdGVneTtcclxudmFyIFVzZXIgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciBKd3RTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLlN0cmF0ZWd5O1xyXG52YXIgRXh0cmFjdEp3dCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLkV4dHJhY3RKd3Q7XHJcbnZhciBqd3QgPSByZXF1aXJlKCdqc29ud2VidG9rZW4nKTtcclxuXHJcblxyXG5wYXNzcG9ydC51c2UobmV3IExvY2FsU3RyYXRlZ3koVXNlci5hdXRoZW50aWNhdGUoKSkpO1xyXG5wYXNzcG9ydC5zZXJpYWxpemVVc2VyKFVzZXIuc2VyaWFsaXplVXNlcigpKTtcclxucGFzc3BvcnQuZGVzZXJpYWxpemVVc2VyKFVzZXIuZGVzZXJpYWxpemVVc2VyKCkpO1xyXG5cclxuZXhwb3J0cy5nZXRUb2tlbiA9ICh1c2VyKSA9PiB7XHJcbiAgICByZXR1cm4gand0LnNpZ24odXNlciwgcHJvY2Vzcy5lbnYuc2VjcmV0S2V5LFxyXG4gICAgICAgIHsgZXhwaXJlc0luOiAzNjAwIH0pO1xyXG59O1xyXG5cclxudmFyIG9wdHMgPSB7fTtcclxub3B0cy5qd3RGcm9tUmVxdWVzdCA9IEV4dHJhY3RKd3QuZnJvbUF1dGhIZWFkZXJBc0JlYXJlclRva2VuKCk7XHJcbm9wdHMuc2VjcmV0T3JLZXkgPSBwcm9jZXNzLmVudi5zZWNyZXRLZXk7XHJcblxyXG5leHBvcnRzLmp3dFBhc3Nwb3J0ID0gcGFzc3BvcnQudXNlKG5ldyBKd3RTdHJhdGVneShvcHRzLFxyXG4gICAgKGp3dF9wYXlsb2FkLCBkb25lKSA9PiB7XHJcbiAgICAgICAgVXNlci5maW5kT25lKHsgX2lkOiBqd3RfcGF5bG9hZC5faWQgfSwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShlcnIsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCB1c2VyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkb25lKG51bGwsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSkpO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlVc2VyID0gcGFzc3BvcnQuYXV0aGVudGljYXRlKCdqd3QnLCB7IHNlc3Npb246IGZhbHNlIH0pO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ2FkbWluJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlICE9ICdhZG1pbicpIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ0FkbWluIFZlcmlmaWNhdGlvbiBGYWlsZWQhJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDUwMDtcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnZlcmlmeU1vZGVyYXRlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgIT0gJ3VzZXInKSB7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdNb2RlcmF0ZXIgVmVyaWZpY2F0aW9uIEZhaWxlZCEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNTAwO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuIl19\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Moderater Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/83/authenticate_83ba38785e68b531d6a7c8378dfee9c9.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2336\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8642,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8639,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":11}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":11}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":6}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1871,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4b/validation_4b7a8ff68e044daa8c6daa8312a761dc.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2369\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(newPasswordString, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, function (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating Password'\\n });\\n });\\n};\\n\\nconst logout = (req, res) => {\\n if (req.session) {\\n req.session.destroy();\\n res.clearCookie('session-id');\\n } else {\\n var err = new Error('You are not logged in!');\\n err.status = 403;\\n }\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.logout = logout;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsImZpbmRCeUlkIiwidGhlbiIsInNhbml0aXplZFVzZXIiLCJzZXRQYXNzd29yZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwibWVzc2FnZSIsImxvZ291dCIsInNlc3Npb24iLCJkZXN0cm95IiwiY2xlYXJDb29raWUiLCJFcnJvciIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBckI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBYjs7QUFFQSxJQUFJQyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxpQkFBRCxDQUFuQjs7QUFDQSxJQUFJSSxRQUFRLEdBQUdKLE9BQU8sQ0FBQyxVQUFELENBQXRCOztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUdBLE1BQU1NLFdBQVcsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUNwQyxNQUFJQyxLQUFLLEdBQUc7QUFDUkMsSUFBQUEsUUFBUSxFQUFFSixHQUFHLENBQUNLLElBQUos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LEdBQWlCLEdBQWpCO0FBQ0FiLElBQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLElBQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCa0IsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQWpCRDtBQWtCSCxDQXBCRDs7QUFzQkEsTUFBTUMsTUFBTSxHQUFHLENBQUNwQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUN6QixNQUFJRCxHQUFHLENBQUNxQyxPQUFSLEVBQWlCO0FBQ2JyQyxJQUFBQSxHQUFHLENBQUNxQyxPQUFKLENBQVlDLE9BQVo7QUFDQXJDLElBQUFBLEdBQUcsQ0FBQ3NDLFdBQUosQ0FBZ0IsWUFBaEI7QUFDSCxHQUhELE1BSUs7QUFDRCxRQUFJM0IsR0FBRyxHQUFHLElBQUk0QixLQUFKLENBQVUsd0JBQVYsQ0FBVjtBQUNBNUIsSUFBQUEsR0FBRyxDQUFDTSxNQUFKLEdBQWEsR0FBYjtBQUNIO0FBQ0osQ0FURDs7QUFXQXVCLE9BQU8sQ0FBQzFDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0EwQyxPQUFPLENBQUNyQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBcUIsT0FBTyxDQUFDTCxNQUFSLEdBQWlCQSxNQUFqQjtBQUNBSyxPQUFPLENBQUNmLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbnZhciByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxudmFyIFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG5cclxuXHJcbmNvbnN0IHNpZ251cEFkbWluID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgYWRtaW4gPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIGZpcnN0bmFtZTogcmVxLmJvZHkuZmlyc3RuYW1lLFxyXG4gICAgICAgIGxhc3RuYW1lOiByZXEuYm9keS5sYXN0bmFtZSxcclxuICAgICAgICBlbWFpbDogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgcm9sZTogJ2FkbWluJ1xyXG4gICAgfVxyXG4gICAgVXNlcnMucmVnaXN0ZXIobmV3IFVzZXJzKGFkbWluKSxcclxuICAgICAgICByZXEuYm9keS5wYXNzd29yZCwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gVW5zdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVxLmJvZHkuZmlyc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIuZmlyc3RuYW1lID0gcmVxLmJvZHkuZmlyc3RuYW1lO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5Lmxhc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIubGFzdG5hbWUgPSByZXEuYm9keS5sYXN0bmFtZTtcclxuICAgICAgICAgICAgICAgIHVzZXIuc2F2ZSgoZXJyLCB1c2VyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHN0YXR1czogJ1JlZ2lzdHJhdGlvbiBTdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dpbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgcGFzc3BvcnQuYXV0aGVudGljYXRlKCdsb2NhbCcsIChlcnIsIHVzZXIsIGluZm8pID0+IHtcclxuXHJcbiAgICAgICAgaWYgKCF1c2VyKSB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAxO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdMb2dpbiBVbnN1Y2Nlc3NmdWwhJywgZXJyOiBpbmZvIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXEubG9nSW4odXNlciwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB2YXIgdG9rZW4gPSBhdXRoZW50aWNhdGUuZ2V0VG9rZW4oeyBfaWQ6IHJlcS51c2VyLl9pZCwgcm9sZTogdXNlci5yb2xlIH0pO1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdMb2dpbiBTdWNjZXNzZnVsIScsIHRva2VuOiB0b2tlbiwgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KShyZXEsIHJlcywgbmV4dCk7XHJcbn1cclxuXHJcbmNvbnN0IGNoYW5nZVBhc3Nvd29yZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHVzZXJJZCA9IHJlcS5wYXJhbXMuaWQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKG5ld1Bhc3N3b3JkU3RyaW5nLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ3Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgZnVuY3Rpb24gKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIFBhc3N3b3JkJyB9KTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dvdXQgPSAocmVxLCByZXMpID0+IHtcclxuICAgIGlmIChyZXEuc2Vzc2lvbikge1xyXG4gICAgICAgIHJlcS5zZXNzaW9uLmRlc3Ryb3koKTtcclxuICAgICAgICByZXMuY2xlYXJDb29raWUoJ3Nlc3Npb24taWQnKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGxvZ2dlZCBpbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5sb2dvdXQgPSBsb2dvdXQ7XHJcbmV4cG9ydHMuY2hhbmdlUGFzc293b3JkID0gY2hhbmdlUGFzc293b3JkOyJdfQ==\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(newPasswordString, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, function (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating Password' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst logout = (req, res) => {\\r\\n if (req.session) {\\r\\n req.session.destroy();\\r\\n res.clearCookie('session-id');\\r\\n }\\r\\n else {\\r\\n var err = new Error('You are not logged in!');\\r\\n err.status = 403;\\r\\n }\\r\\n}\\r\\n\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.logout = logout;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1b/userController_1b7f9872a721ffd88b6634cf95f37bee.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2370\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13343,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13340,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2707,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"logout\",\"ranges\":[{\"startOffset\":2725,\"endOffset\":2913,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/cors_34beef0e65d7cfb3f2bb7a05fb9de802.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2371\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":16}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/3b/employeeRouter_3bb83cd3174a28ed34e0f44c133b9b42.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2372\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n throw err;\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n throw err;\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while deletting.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsImZpcnN0bmFtZSIsIiRyZWdleCIsIiRvcHRpb25zIiwic29ydGJ5Iiwic29ydEJ5Iiwic29ydCIsImFkZEVtcGxveWVlIiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJlbXBsb3llZSIsInVzZXJuYW1lIiwiZW1haWwiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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QUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFRixHQUFHLENBQUNFO0FBQS9CLEtBQVQ7QUFDSCxHQVhMO0FBWUgsQ0FiRDs7QUFlQTJCLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNLLHlCQUFSLEdBQW9DQSx5QkFBcEM7QUFDQUwsT0FBTyxDQUFDUyxtQkFBUixHQUE4QkEsbUJBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRW1wbG95ZWVzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMvdXRpbHMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBnZXQgZGV0YWlscyBvZiB0aGUgYXNzaXN0YW50c1xyXG4gKiBAcGFyYW0geyp9IHJlcSBcclxuICogQHBhcmFtIHsqfSByZXMgXHJcbiAqIEBwYXJhbSB7Kn0gbmV4dCBcclxuICogQHJldHVybnMge2FycmF5fSBsaXN0IG9mIGVtcGxveWVlc1xyXG4gKi9cclxuY29uc3QgZ2V0QWxsRW1wbG95ZWVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH07XHJcbiAgICBFbXBsb3llZXMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbEVtcGxveWVlc0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9O1xyXG4gICAgLy8gaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgLy8gICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgLy8gICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9XHJcbiAgICAvLyB9XHJcbiAgICBpZiAocmVxLmJvZHkuc2ltaWxhclRvKSB7XHJcbiAgICAgICAgdmFyIHNlYXJjaEJ5ID0gcmVxLmJvZHkuc2ltaWxhclRvIHx8IHt9XHJcbiAgICAgICAgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiLCBmaXJzdG5hbWU6IHsgJHJlZ2V4OiBgJHtzZWFyY2hCeX1gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgRW1wbG95ZWVzLmZpbmQocXVlcnkpLnNvcnQoc29ydGJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZ2V0dGluZyBkYXRhJyB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGVtcGxveWVlLnNhdmUoKGVyciwgZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtYWlsOiBlbXBsb3llZS5lbWFpbCwgcGFzc3dvcmQ6IHJhbmRvbVBhc3N3b3JkIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIEVtcGxveWVlcy5yZW1vdmUoeyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzID0gZ2V0QWxsRW1wbG95ZWVzO1xyXG5leHBvcnRzLmdldEFsbEVtcGxveWVlc0J5TmFtZSA9IGdldEFsbEVtcGxveWVlc0J5TmFtZTtcclxuZXhwb3J0cy5hZGRFbXBsb3llZSA9IGFkZEVtcGxveWVlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbEVtcGxveWVlcyA9IGRlbGV0ZUFsbEVtcGxveWVlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigoZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWU6IGVtcGxveWVlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGVtcGxveWVlID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdtb2RlcmF0ZXInXHJcbiAgICB9XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5lbXBsb3llZUlkLCB7XHJcbiAgICAgICAgJHNldDogZW1wbG95ZWVcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlOiBlbXBsb3llZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHVwZGF0aW5nLlwiKTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBRW1wbG95ZWVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIGRlbGV0dGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRFbXBsb3llZURldGFpbHNCeUlkID0gZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVFbXBsb3llZURldGFpbHNCeUlkID0gdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBRW1wbG95ZWVCeUlkID0gZGVsZXRlQUVtcGxveWVlQnlJZDsiXX0=\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while deletting.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4c/employeeController_4c102fe7873f734bd5117d404757cd9d.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2373\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22614,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22611,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":1053,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":1086,\"endOffset\":1976,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1999,\"endOffset\":2993,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2326,\"endOffset\":2750,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2420,\"endOffset\":2734,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3023,\"endOffset\":3260,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3709,\"endOffset\":3993,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4030,\"endOffset\":4740,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4771,\"endOffset\":5211,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const multer = require('multer');\\n\\nconst {\\n v4: uuidv4\\n} = require('uuid');\\n\\nlet path = require('path');\\n\\nconst storage = multer.diskStorage({\\n destination: function (req, file, cb) {\\n cb(null, 'images');\\n },\\n filename: function (req, file, cb) {\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\n }\\n});\\n\\nconst fileFilter = (req, file, cb) => {\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\n\\n if (allowedFileTypes.includes(file.mimetype)) {\\n cb(null, true);\\n } else {\\n cb(null, false);\\n }\\n};\\n\\nlet upload = multer({\\n storage,\\n fileFilter\\n});\\nexports.upload = upload;\\n\\nconst password_generator = len => {\\n var length = len ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbIm11bHRlciIsInJlcXVpcmUiLCJ2NCIsInV1aWR2NCIsInBhdGgiLCJzdG9yYWdlIiwiZGlza1N0b3JhZ2UiLCJkZXN0aW5hdGlvbiIsInJlcSIsImZpbGUiLCJjYiIsImZpbGVuYW1lIiwiRGF0ZSIsIm5vdyIsImV4dG5hbWUiLCJvcmlnaW5hbG5hbWUiLCJmaWxlRmlsdGVyIiwiYWxsb3dlZEZpbGVUeXBlcyIsImluY2x1ZGVzIiwibWltZXR5cGUiLCJ1cGxvYWQiLCJleHBvcnRzIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwibGVuIiwibGVuZ3RoIiwic3RyaW5nIiwibnVtZXJpYyIsInB1bmN0dWF0aW9uIiwicGFzc3dvcmQiLCJjaGFyYWN0ZXIiLCJjcnVuY2giLCJlbnRpdHkxIiwiTWF0aCIsImNlaWwiLCJyYW5kb20iLCJlbnRpdHkyIiwiZW50aXR5MyIsImhvbGQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNwbGl0Iiwic29ydCIsImpvaW4iLCJzdWJzdHIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxFQUFFLEVBQUVDO0FBQU4sSUFBaUJGLE9BQU8sQ0FBQyxNQUFELENBQTlCOztBQUNBLElBQUlHLElBQUksR0FBR0gsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBQ0EsTUFBTUksT0FBTyxHQUFHTCxNQUFNLENBQUNNLFdBQVAsQ0FBbUI7QUFDL0JDLEVBQUFBLFdBQVcsRUFBRSxVQUFVQyxHQUFWLEVBQWVDLElBQWYsRUFBcUJDLEVBQXJCLEVBQXlCO0FBQ2xDQSxJQUFBQSxFQUFFLENBQUMsSUFBRCxFQUFPLFFBQVAsQ0FBRjtBQUNILEdBSDhCO0FBSS9CQyxFQUFBQSxRQUFRLEVBQUUsVUFBVUgsR0FBVixFQUFlQyxJQUFmLEVBQXFCQyxFQUFyQixFQUF5QjtBQUMvQkEsSUFBQUEsRUFBRSxDQUFDLElBQUQs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LGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtdWx0ZXIgPSByZXF1aXJlKCdtdWx0ZXInKTtcclxuY29uc3QgeyB2NDogdXVpZHY0IH0gPSByZXF1aXJlKCd1dWlkJyk7XHJcbmxldCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xyXG5jb25zdCBzdG9yYWdlID0gbXVsdGVyLmRpc2tTdG9yYWdlKHtcclxuICAgIGRlc3RpbmF0aW9uOiBmdW5jdGlvbiAocmVxLCBmaWxlLCBjYikge1xyXG4gICAgICAgIGNiKG51bGwsICdpbWFnZXMnKTtcclxuICAgIH0sXHJcbiAgICBmaWxlbmFtZTogZnVuY3Rpb24gKHJlcSwgZmlsZSwgY2IpIHtcclxuICAgICAgICBjYihudWxsLCB1dWlkdjQoKSArICctJyArIERhdGUubm93KCkgKyBwYXRoLmV4dG5hbWUoZmlsZS5vcmlnaW5hbG5hbWUpKTtcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBmaWxlRmlsdGVyID0gKHJlcSwgZmlsZSwgY2IpID0+IHtcclxuICAgIGNvbnN0IGFsbG93ZWRGaWxlVHlwZXMgPSBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL3BuZyddO1xyXG4gICAgaWYgKGFsbG93ZWRGaWxlVHlwZXMuaW5jbHVkZXMoZmlsZS5taW1ldHlwZSkpIHtcclxuICAgICAgICBjYihudWxsLCB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2IobnVsbCwgZmFsc2UpO1xyXG4gICAgfVxyXG59XHJcblxyXG5sZXQgdXBsb2FkID0gbXVsdGVyKHsgc3RvcmFnZSwgZmlsZUZpbHRlciB9KTtcclxuXHJcbmV4cG9ydHMudXBsb2FkID0gdXBsb2FkO1xyXG5cclxuY29uc3QgcGFzc3dvcmRfZ2VuZXJhdG9yID0gKGxlbikgPT4ge1xyXG4gICAgdmFyIGxlbmd0aCA9IChsZW4pID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfH17W11cXDo7Pz48LC4vLT0nO1xyXG4gICAgdmFyIHBhc3N3b3JkID0gXCJcIjtcclxuICAgIHZhciBjaGFyYWN0ZXIgPSBcIlwiO1xyXG4gICAgdmFyIGNydW5jaCA9IHRydWU7XHJcbiAgICB3aGlsZSAocGFzc3dvcmQubGVuZ3RoIDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgZW50aXR5MSA9IE1hdGguY2VpbChzdHJpbmcubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTIgPSBNYXRoLmNlaWwobnVtZXJpYy5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgZW50aXR5MyA9IE1hdGguY2VpbChwdW5jdHVhdGlvbi5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgaG9sZCA9IHN0cmluZy5jaGFyQXQoZW50aXR5MSk7XHJcbiAgICAgICAgaG9sZCA9IChwYXNzd29yZC5sZW5ndGggJSAyID09IDApID8gKGhvbGQudG9VcHBlckNhc2UoKSkgOiAoaG9sZCk7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IGhvbGQ7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IG51bWVyaWMuY2hhckF0KGVudGl0eTIpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBwdW5jdHVhdGlvbi5jaGFyQXQoZW50aXR5Myk7XHJcbiAgICAgICAgcGFzc3dvcmQgPSBjaGFyYWN0ZXI7XHJcbiAgICB9XHJcbiAgICBwYXNzd29yZCA9IHBhc3N3b3JkLnNwbGl0KCcnKS5zb3J0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAuNSAtIE1hdGgucmFuZG9tKCkgfSkuam9pbignJyk7XHJcbiAgICByZXR1cm4gcGFzc3dvcmQuc3Vic3RyKDAsIGxlbmd0aCk7XHJcbn1cclxuXHJcbmV4cG9ydHMucGFzc3dvcmRfZ2VuZXJhdG9yID0gcGFzc3dvcmRfZ2VuZXJhdG9yOyJdfQ==\",\"originalCode\":\"const multer = require('multer');\\r\\nconst { v4: uuidv4 } = require('uuid');\\r\\nlet path = require('path');\\r\\nconst storage = multer.diskStorage({\\r\\n destination: function (req, file, cb) {\\r\\n cb(null, 'images');\\r\\n },\\r\\n filename: function (req, file, cb) {\\r\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\r\\n }\\r\\n});\\r\\n\\r\\nconst fileFilter = (req, file, cb) => {\\r\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\r\\n if (allowedFileTypes.includes(file.mimetype)) {\\r\\n cb(null, true);\\r\\n } else {\\r\\n cb(null, false);\\r\\n }\\r\\n}\\r\\n\\r\\nlet upload = multer({ storage, fileFilter });\\r\\n\\r\\nexports.upload = upload;\\r\\n\\r\\nconst password_generator = (len) => {\\r\\n var length = (len) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/f3/utils_f37ac8376b54b6ced952605900298d07.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2374\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":7861,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":7858,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"destination\",\"ranges\":[{\"startOffset\":248,\"endOffset\":302,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"filename\",\"ranges\":[{\"startOffset\":316,\"endOffset\":423,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"fileFilter\",\"ranges\":[{\"startOffset\":448,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":752,\"endOffset\":1636,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1537,\"endOffset\":1586,\"count\":25}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9d/placeRouter_9d9aca2c41f2c1b6283bdacdd67537b2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2415\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/ee/placeController_ee3a20e34d4d356553af723b6f7f6a6e.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2416\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":551,\"endOffset\":736,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":738,\"endOffset\":754,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":762,\"endOffset\":778,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":3},{\"startOffset\":887,\"endOffset\":998,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1108,\"endOffset\":1293,\"count\":3}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1295,\"endOffset\":1311,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1319,\"endOffset\":1335,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":4}],\"isBlockCoverage\":true},{\"functionName\":\"VisitingPlaces.create.then.res.statusCode\",\"ranges\":[{\"startOffset\":1846,\"endOffset\":2028,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2030,\"endOffset\":2248,\"count\":3},{\"startOffset\":2147,\"endOffset\":2164,\"count\":2},{\"startOffset\":2165,\"endOffset\":2179,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2256,\"endOffset\":2272,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2366,\"endOffset\":2480,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2482,\"endOffset\":2498,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2506,\"endOffset\":2522,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwidmVyaWZ5TW9kZXJhdGVyIiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNB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T0FBUCxHQUFpQjlCLGNBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHNjaGVkdWxlQ29udHJvbGxlciA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3NjaGVkdWxlQ29udHJvbGxlcicpXHJcblxyXG5jb25zdCBzY2hlZHVsZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgUm91dGVzXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnLycpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeU1vZGVyYXRlciwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlQWxsU2NoZWR1bGVzKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBSb3V0ZXMgT24gSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvOnNjaGVkdWxlSWQnKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgc2NoZWR1bGVDb250cm9sbGVyLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvc2NoZWR1bGVzLycgKyByZXEucGFyYW1zLnNjaGVkdWxlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIudXBkYXRlU2NoZWR1bGVCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgc2NoZWR1bGVDb250cm9sbGVyLmRlbGV0ZVNjaGVkdWxlQnlJZCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnL3VzZXIvOnVzZXJJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAgc2NoZWR1bGVDb250cm9sbGVyLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gc2NoZWR1bGVSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9b/scheduleRouter_9b57edc7078385d142c957dea9d9e0be.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2417\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9621,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9618,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1085,\"endOffset\":1188,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1621,\"endOffset\":1661,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1824,\"endOffset\":1953,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2288,\"endOffset\":2328,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to add a schedule\\\"\\n });\\n });\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Update failed\\\"\\n });\\n });\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Delete failed\\\"\\n });\\n });\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwibXNnIiwiX21lc3NhZ2UiLCJhZGRTY2hlZHVsZSIsInNjaGVkdWxlIiwidXNlciIsImJvZHkiLCJwbGFjZSIsImRhdGUiLCJzdGF0ZSIsInRyYXZlbGxpbmdNZXRob2QiLCJjcmVhdGUiLCJkZWxldGVBbGxTY2hlZHVsZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInNjaGVkdWxlSWQiLCJ1cGRhdGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxxQkFBRCxDQUF6QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3hDTCxFQUFBQSxTQUFTLENBQUNNLElBQVYsQ0FBZUgsR0FBRyxDQUFDSSxLQUFuQixFQUEwQkMsUUFBMUIsQ0FBbUMsT0FBbkMsRUFBNENBLFFBQTVDLENBQXFELE1BQXJELEVBQ0tDLElBREwsQ0FDV0MsU0FBRCxJQUFlO0FBQ2pCTixJQUFBQSxHQUFHLENBQUNPLFVBQUosR0FBaUIs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Q1cwQixJQUFELElBQVU7QUFDWi9CLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQmdDLE1BQUFBLFFBQVEsRUFBQ1g7QUFBMUIsS0FBVDtBQUNILEdBTEwsRUFLUXBCLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTO0FBQ1pYLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQVZMO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gZ2V0IGRhdGFcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJ1c2VyXCI6IFN0cmluZyhyZXEucGFyYW1zLnVzZXJJZCkgfTtcclxuICAgIFNjaGVkdWxlcy5maW5kKHF1ZXJ5KS5wb3B1bGF0ZShcInBsYWNlXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+ICB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICBjb25zdCBtc2cgPSBlcnIuX21lc3NhZ2U7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IG1zZyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkZhaWxlZCB0byBnZXQgZGF0YVwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBhZGRTY2hlZHVsZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHNjaGVkdWxlID0ge1xyXG4gICAgICAgIHVzZXI6IHJlcS5ib2R5LnVzZXIsXHJcbiAgICAgICAgcGxhY2U6IHJlcS5ib2R5LnBsYWNlLFxyXG4gICAgICAgIGRhdGU6IHJlcS5ib2R5LmRhdGUsXHJcbiAgICAgICAgc3RhdGU6IFwibmV3XCIsXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZDogcmVxLmJvZHkudHJhdmVsbGluZ01ldGhvZFxyXG4gICAgfVxyXG4gICAgU2NoZWR1bGVzLmNyZWF0ZShzY2hlZHVsZSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6c2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgY29uc3QgbXNnID0gZXJyLl9tZXNzYWdlO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBtc2cgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gYWRkIGEgc2NoZWR1bGVcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzID0gZ2V0QWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmFkZFNjaGVkdWxlID0gYWRkU2NoZWR1bGU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsU2NoZWR1bGVzID0gZGVsZXRlQWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyID0gZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXI7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlOnNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBwbGFjZVwiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgU2NoZWR1bGVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuc2NoZWR1bGVJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTpzY2hlZHVsZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiVXBkYXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6cmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiRGVsZXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnRzLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSBnZXRTY2hlZHVsZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVNjaGVkdWxlQnlJZCA9IHVwZGF0ZVNjaGVkdWxlQnlJZDtcclxuZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5SWQgPSBkZWxldGVTY2hlZHVsZUJ5SWQ7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgVXNlcklEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vLyBjb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4vLyAgICAgU2NoZWR1bGVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuc2NoZWR1bGVJZClcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuLy8gICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4vLyAgICAgfSwgeyBuZXc6IHRydWUgfSlcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IGRlbGV0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4vLyAgICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuLy8gICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxuLy8gfSJdfQ==\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to add a schedule\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Update failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response:resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Delete failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1e/scheduleController_1ed35fc0c47927fadcf3cf43433b4df6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2542\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":846,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":881,\"endOffset\":1554,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1577,\"endOffset\":2348,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2378,\"endOffset\":2588,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":3041,\"endOffset\":3489,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3519,\"endOffset\":4012,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":4042,\"endOffset\":4480,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/e2/schedules_e2f8e79bc28961f4db3736c92d490e47.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2543\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0a/touristRouter_0ad938586662daadc81c6cb1ad2e0f53.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2545\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var error = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while deleting data'\\n });\\n });\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJtZXNzYWdlIiwiZ2V0QWxsVG91cmlzdHNCeU5hbWUiLCJib2R5Iiwic2ltaWxhclRvIiwic2VhcmNoQnkiLCIkdGV4dCIsIiRzZWFyY2giLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkVG91cmlzdCIsInJhbmRvbVBhc3N3b3JkIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwidG91cmlzdCIsInVzZXJuYW1lIiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsIm1vYmlsZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxUb3VyaXN0cyIsInJlbW92ZSIsInJlc3AiLCJyZXNwb25zZSIsImV4cG9ydHMiLCJnZXRUb3VyaXN0RGV0YWlsc0J5SWQiLCJ0b3VyaXN0SWQiLCJwYXJhbXMiLCJmaW5kQnlJZCIsInVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCIsImZpbmRCeUlkQW5kVXBkYXRlIiwiJHNldCIsIm5ldyIsImRlbGV0ZUFUb3VyaXN0QnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUUsY0FBYyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLE1BQUlDLEtB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O0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCK0IsTUFBQUEsUUFBUSxFQUFFRDtBQUEzQixLQUFUO0FBQ0gsR0FMTCxFQUtRN0IsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVM7QUFDWlYsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCRyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNILEdBVkw7QUFXSCxDQVpEOztBQWNBNkIsT0FBTyxDQUFDQyxxQkFBUixHQUFnQ0EscUJBQWhDO0FBQ0FELE9BQU8sQ0FBQ0ssd0JBQVIsR0FBbUNBLHdCQUFuQztBQUNBTCxPQUFPLENBQUNTLGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBUb3VyaXN0cyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG5jb25zdCB1dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzL3V0aWxzJyk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsVG91cmlzdHMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiIH07XHJcbiAgICAvLyB2YXIgb2JqID0gT2JqZWN0LmFzc2lnbihxdWVyeSwgeyAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH0pO1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgfVxyXG5cclxuICAgIHZhciBzb3J0YnkgPSByZXEuYm9keS5zb3J0QnkgfHwge307XHJcbiAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHRvdXJpc3RJZCA9IHJlcS5wYXJhbXMudG91cmlzdElkO1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWQodG91cmlzdElkKVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTsgXHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgXHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnRvdXJpc3RJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gIHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6ICdDb3VsZCBub3QgZmluZCB0b3VyaXN0IHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFUb3VyaXN0QnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy50b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZGVsZXRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcbiJdfQ==\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var error = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while deleting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9e/touristController_9ee6bfceb00c4d02fdcd8e12f129a687.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2546\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23082,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23079,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":954,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":986,\"endOffset\":1675,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1697,\"endOffset\":3064,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":3093,\"endOffset\":3369,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3808,\"endOffset\":4292,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":4328,\"endOffset\":4839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4869,\"endOffset\":5317,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/07/dashboardRouter_0791a49f2f45fc0f57ade98f27175c5c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2547\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/dashboardController_34872bbac017cfae6fcc33926d204118.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2548\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const app = require('../../app');\\n\\nconst server = require(\\\"supertest\\\")(app);\\n\\nconst jwt_decode = require('jwt-decode');\\n\\nconst Users = require('../../models/users');\\n\\nvar userToken;\\nvar assistantToken;\\nvar adminToken;\\nconst admin = {\\n \\\"firstname\\\": \\\"Admin\\\",\\n \\\"lastname\\\": \\\"Admin\\\",\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\n \\\"password\\\": \\\"admin-password\\\"\\n};\\nconst assistant = {\\n \\\"firstname\\\": \\\"Dinesh\\\",\\n \\\"lastname\\\": \\\"Chandimal\\\",\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\n};\\nconst tourist = {\\n \\\"firstname\\\": \\\"Sunil\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\n};\\n\\nconst signupAdmin = async () => {\\n await Users.deleteMany({});\\n await server.post(\\\"/users/signup/admin\\\").send(admin);\\n};\\n\\nconst getAdminToken = async () => {\\n if (adminToken) {\\n return adminToken;\\n }\\n\\n await signupAdmin();\\n var creds = {\\n username: admin.email,\\n password: admin.password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n adminToken = response.body.token;\\n return adminToken;\\n};\\n\\nconst addAssistant = async () => {\\n if (!adminToken) {\\n await getAdminToken();\\n }\\n\\n const response = await server.post(\\\"/employees\\\").set(\\\"Authorization\\\", `Bearer ${adminToken}`).send(assistant).expect(200);\\n return response.body.password;\\n};\\n\\nconst getAssistantToken = async () => {\\n if (assistantToken) {\\n return assistantToken;\\n }\\n\\n const password = await addAssistant();\\n var creds = {\\n username: assistant.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n assistantToken = response.body.token;\\n return assistantToken;\\n};\\n\\nconst addTourist = async () => {\\n if (!assistantToken) {\\n await getAssistantToken();\\n }\\n\\n const response = await server.post(\\\"/tourists\\\").set(\\\"Authorization\\\", `Bearer ${assistantToken}`).send(tourist).expect(200);\\n return response.body.password;\\n};\\n\\nconst getTouristToken = async () => {\\n if (userToken) {\\n return userToken;\\n }\\n\\n const password = await addTourist();\\n var creds = {\\n username: tourist.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n userToken = response.body.token;\\n return userToken;\\n};\\n\\nconst getExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Namal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\n \\\"mobile\\\": \\\"981114844\\\",\\n \\\"rommnumber\\\": \\\"41\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n return tourist._id.toString();\\n};\\n\\nconst getNonExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Kamal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n await tourist.remove();\\n return tourist._id.toString();\\n};\\n\\nconst decodeToken = token => {\\n var decoded = jwt_decode(token);\\n return decoded;\\n};\\n\\nmodule.exports = {\\n getAdminToken,\\n getAssistantToken,\\n getTouristToken,\\n decodeToken,\\n addTourist,\\n getTouristToken,\\n getExistingId,\\n getNonExistingId\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJfaGVscGVyLmpzIl0sIm5hbWVzIjpbImFwcCIsInJlcXVpcmUiLCJzZXJ2ZXIiLCJqd3RfZGVjb2RlIiwiVXNlcnMiLCJ1c2VyVG9rZW4iLCJhc3Npc3RhbnRUb2tlbiIsImFkbWluVG9rZW4iLCJhZG1pbiIsImFzc2lzdGFudCIsInRvdXJpc3QiLCJzaWdudXBBZG1pbiIsImRlbGV0ZU1hbnkiLCJwb3N0Iiwic2VuZCIsImdldEFkbWluVG9rZW4iLCJjcmVkcyIsInVzZXJuYW1lIiwiZW1haWwiLCJwYXNzd29yZCIsInJlc3BvbnNlIiwiYm9keSIsInRva2VuIiwiYWRkQXNzaXN0YW50Iiwic2V0IiwiZXhwZWN0IiwiZ2V0QXNzaXN0YW50VG9rZW4iLCJhZGRUb3VyaXN0IiwiZ2V0VG91cmlzdFRva2VuIiwiZ2V0RXhpc3RpbmdJZCIsIm5ld1RvdXJpc3QiLCJzYXZlIiwiX2lkIiwidG9TdHJpbmciLCJnZXROb25FeGlzdGluZ0lkIiwicmVtb3ZlIiwiZGVjb2RlVG9rZW4iLCJkZWNvZGVkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsV0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxXQUFELENBQVAsQ0FBcUJELEdBQXJCLENBQWY7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHRixPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNRyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxvQkFBRCxDQUFyQjs7QUFFQSxJQUFJSSxTQUFKO0FBQ0EsSUFBSUMsY0FBSjtBQUNBLElBQUlDLFVBQUo7QUFDQSxNQUFNQyxLQUFLLEdBQUc7QUFDVixlQUFhLE9BREg7QUFFVixjQUFZLE9BRkY7QUFHVixXQUFTLGlCQUhDO0FBSVYsY0FBWTtBQUpGLENBQWQ7QUFNQSxNQUFNQyxTQUFTLEdBQUc7QUFDZCxlQUFhLFFBREM7QUFFZCxjQUFZLFdBRkU7QUFHZCxXQUFTO0FB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QyxFQUFBQSxlQUQvRDtBQUNnRkMsRUFBQUEsYUFEaEY7QUFDK0ZLLEVBQUFBO0FBRC9GLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXBwID0gcmVxdWlyZSgnLi4vLi4vYXBwJyk7XHJcbmNvbnN0IHNlcnZlciA9IHJlcXVpcmUoXCJzdXBlcnRlc3RcIikoYXBwKTtcclxuY29uc3Qgand0X2RlY29kZSA9IHJlcXVpcmUoJ2p3dC1kZWNvZGUnKTtcclxuY29uc3QgVXNlcnMgPSByZXF1aXJlKCcuLi8uLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciB1c2VyVG9rZW47XHJcbnZhciBhc3Npc3RhbnRUb2tlbjtcclxudmFyIGFkbWluVG9rZW47XHJcbmNvbnN0IGFkbWluID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJBZG1pblwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkFkbWluXCIsXHJcbiAgICBcImVtYWlsXCI6IFwiYWRtaW5AZ21haWwuY29tXCIsXHJcbiAgICBcInBhc3N3b3JkXCI6IFwiYWRtaW4tcGFzc3dvcmRcIlxyXG59O1xyXG5jb25zdCBhc3Npc3RhbnQgPSB7XHJcbiAgICBcImZpcnN0bmFtZVwiOiBcIkRpbmVzaFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkNoYW5kaW1hbFwiLFxyXG4gICAgXCJlbWFpbFwiOiBcImRpbmVzaGNoYW5kaW1hbEBnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCB0b3VyaXN0ID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJTdW5pbFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkZlcm5hbWRvXCIsXHJcbiAgICBcImVtYWlsXCI6IFwic3VuaWxGZXJuYW1kb0BnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCBzaWdudXBBZG1pbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGF3YWl0IFVzZXJzLmRlbGV0ZU1hbnkoe30pO1xyXG4gICAgYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvdXNlcnMvc2lnbnVwL2FkbWluXCIpXHJcbiAgICAgICAgLnNlbmQoYWRtaW4pO1xyXG59O1xyXG5cclxuY29uc3QgZ2V0QWRtaW5Ub2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhZG1pblRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbiAgICB9XHJcbiAgICBhd2FpdCBzaWdudXBBZG1pbigpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiBhZG1pbi5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogYWRtaW4ucGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFkbWluVG9rZW4gPSByZXNwb25zZS5ib2R5LnRva2VuO1xyXG4gICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGFkZEFzc2lzdGFudCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYWRtaW5Ub2tlbikge1xyXG4gICAgICAgIGF3YWl0IGdldEFkbWluVG9rZW4oKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvZW1wbG95ZWVzXCIpXHJcbiAgICAgICAgLnNldChcIkF1dGhvcml6YXRpb25cIiwgYEJlYXJlciAke2FkbWluVG9rZW59YClcclxuICAgICAgICAuc2VuZChhc3Npc3RhbnQpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRBc3Npc3RhbnRUb2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhc3Npc3RhbnRUb2tlbikge1xyXG4gICAgICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkQXNzaXN0YW50KCk7XHJcbiAgICB2YXIgY3JlZHMgPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IGFzc2lzdGFudC5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogcGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFzc2lzdGFudFRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxufVxyXG5cclxuY29uc3QgYWRkVG91cmlzdCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYXNzaXN0YW50VG9rZW4pIHtcclxuICAgICAgICBhd2FpdCBnZXRBc3Npc3RhbnRUb2tlbigpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi90b3VyaXN0c1wiKVxyXG4gICAgICAgIC5zZXQoXCJBdXRob3JpemF0aW9uXCIsIGBCZWFyZXIgJHthc3Npc3RhbnRUb2tlbn1gKVxyXG4gICAgICAgIC5zZW5kKHRvdXJpc3QpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRUb3VyaXN0VG9rZW4gPSBhc3luYyAoKSA9PiB7XHJcbiAgICBpZiAodXNlclRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIHVzZXJUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkVG91cmlzdCgpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiB0b3VyaXN0LmVtYWlsLFxyXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlcnZlclxyXG4gICAgICAgIC5wb3N0KFwiL3VzZXJzL2xvZ2luXCIpXHJcbiAgICAgICAgLnNlbmQoY3JlZHMpO1xyXG4gICAgdXNlclRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiB1c2VyVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGdldEV4aXN0aW5nSWQgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBuZXdUb3VyaXN0ID0ge1xyXG4gICAgICAgIFwiZmlyc3RuYW1lXCI6IFwiTmFtYWxcIixcclxuICAgICAgICBcImxhc3RuYW1lXCI6IFwiRmVybmFtZG9cIixcclxuICAgICAgICBcImVtYWlsXCI6IFwibmFtYWxmZXJuYW1kb0BnbWFpbC5jb21cIixcclxuICAgICAgICBcIm1vYmlsZVwiOiBcIjk4MTExNDg0NFwiLFxyXG4gICAgICAgIFwicm9tbW51bWJlclwiIDogXCI0MVwiLFxyXG5cclxuICAgIH1cclxuICAgIGNvbnN0IHRvdXJpc3QgPSBuZXcgVXNlcnMobmV3VG91cmlzdCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnNhdmUoKTtcclxuXHJcbiAgICByZXR1cm4gdG91cmlzdC5faWQudG9TdHJpbmcoKTtcclxuXHJcbiAgICBcclxufVxyXG5cclxuY29uc3QgZ2V0Tm9uRXhpc3RpbmdJZCA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1RvdXJpc3QgPSB7XHJcbiAgICAgICAgXCJmaXJzdG5hbWVcIjogXCJLYW1hbFwiLFxyXG4gICAgICAgIFwibGFzdG5hbWVcIjogXCJGZXJuYW1kb1wiLFxyXG4gICAgICAgIFwiZW1haWxcIjogXCJrYW1hbGZlcm5hbWRvQGdtYWlsLmNvbVwiXHJcbiAgICB9XHJcbiAgICBjb25zdCB0b3VyaXN0ID0gbmV3IFVzZXJzKG5ld1RvdXJpc3QpO1xyXG4gICAgYXdhaXQgdG91cmlzdC5zYXZlKCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnJlbW92ZSgpO1xyXG5cclxuICAgIHJldHVybiB0b3VyaXN0Ll9pZC50b1N0cmluZygpO1xyXG59XHJcblxyXG5jb25zdCBkZWNvZGVUb2tlbiA9ICh0b2tlbikgPT4ge1xyXG4gICAgdmFyIGRlY29kZWQgPSBqd3RfZGVjb2RlKHRva2VuKTtcclxuICAgIHJldHVybiBkZWNvZGVkO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGdldEFkbWluVG9rZW4sIGdldEFzc2lzdGFudFRva2VuLCBnZXRUb3VyaXN0VG9rZW4sIGRlY29kZVRva2VuLCBhZGRUb3VyaXN0LCBnZXRUb3VyaXN0VG9rZW4gLGdldEV4aXN0aW5nSWQgLGdldE5vbkV4aXN0aW5nSWRcclxufVxyXG4iXX0=\",\"originalCode\":\"const app = require('../../app');\\r\\nconst server = require(\\\"supertest\\\")(app);\\r\\nconst jwt_decode = require('jwt-decode');\\r\\nconst Users = require('../../models/users');\\r\\n\\r\\nvar userToken;\\r\\nvar assistantToken;\\r\\nvar adminToken;\\r\\nconst admin = {\\r\\n \\\"firstname\\\": \\\"Admin\\\",\\r\\n \\\"lastname\\\": \\\"Admin\\\",\\r\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\r\\n \\\"password\\\": \\\"admin-password\\\"\\r\\n};\\r\\nconst assistant = {\\r\\n \\\"firstname\\\": \\\"Dinesh\\\",\\r\\n \\\"lastname\\\": \\\"Chandimal\\\",\\r\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\r\\n};\\r\\nconst tourist = {\\r\\n \\\"firstname\\\": \\\"Sunil\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\r\\n};\\r\\nconst signupAdmin = async () => {\\r\\n await Users.deleteMany({});\\r\\n await server\\r\\n .post(\\\"/users/signup/admin\\\")\\r\\n .send(admin);\\r\\n};\\r\\n\\r\\nconst getAdminToken = async () => {\\r\\n if (adminToken) {\\r\\n return adminToken;\\r\\n }\\r\\n await signupAdmin();\\r\\n var creds = {\\r\\n username: admin.email,\\r\\n password: admin.password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n adminToken = response.body.token;\\r\\n return adminToken;\\r\\n}\\r\\n\\r\\nconst addAssistant = async () => {\\r\\n if (!adminToken) {\\r\\n await getAdminToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/employees\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${adminToken}`)\\r\\n .send(assistant)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getAssistantToken = async () => {\\r\\n if (assistantToken) {\\r\\n return assistantToken;\\r\\n }\\r\\n const password = await addAssistant();\\r\\n var creds = {\\r\\n username: assistant.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n assistantToken = response.body.token;\\r\\n return assistantToken;\\r\\n}\\r\\n\\r\\nconst addTourist = async () => {\\r\\n if (!assistantToken) {\\r\\n await getAssistantToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/tourists\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${assistantToken}`)\\r\\n .send(tourist)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getTouristToken = async () => {\\r\\n if (userToken) {\\r\\n return userToken;\\r\\n }\\r\\n const password = await addTourist();\\r\\n var creds = {\\r\\n username: tourist.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n userToken = response.body.token;\\r\\n return userToken;\\r\\n}\\r\\n\\r\\nconst getExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Namal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\r\\n \\\"mobile\\\": \\\"981114844\\\",\\r\\n \\\"rommnumber\\\" : \\\"41\\\",\\r\\n\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n\\r\\n return tourist._id.toString();\\r\\n\\r\\n \\r\\n}\\r\\n\\r\\nconst getNonExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Kamal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n await tourist.remove();\\r\\n\\r\\n return tourist._id.toString();\\r\\n}\\r\\n\\r\\nconst decodeToken = (token) => {\\r\\n var decoded = jwt_decode(token);\\r\\n return decoded;\\r\\n}\\r\\n\\r\\nmodule.exports = {\\r\\n getAdminToken, getAssistantToken, getTouristToken, decodeToken, addTourist, getTouristToken ,getExistingId ,getNonExistingId\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/5d/user_helper_5d6019747344ffe72872c6622cdf23b3.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2692\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\user_helper.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13241,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":677,\"endOffset\":778,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"getAdminToken\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1089,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"addAssistant\",\"ranges\":[{\"startOffset\":1113,\"endOffset\":1339,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"getAssistantToken\",\"ranges\":[{\"startOffset\":1368,\"endOffset\":1686,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1708,\"endOffset\":1943,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristToken\",\"ranges\":[{\"startOffset\":1970,\"endOffset\":2264,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getExistingId\",\"ranges\":[{\"startOffset\":2289,\"endOffset\":2574,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getNonExistingId\",\"ranges\":[{\"startOffset\":2602,\"endOffset\":2862,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"decodeToken\",\"ranges\":[{\"startOffset\":2885,\"endOffset\":2950,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Places = require('../../models/visitingPlaces');\\n\\nconst mockPlaces = require('../mockData/places.data');\\n\\nconst initialPlaces = mockPlaces;\\n\\nconst addPlacesToDb = async () => {\\n const placeObjects = initialPlaces.map(place => new Places(place));\\n const promiseArray = placeObjects.map(place => place.save());\\n await Promise.all(promiseArray);\\n};\\n\\nconst getExistingId = async () => {\\n const newPlace = {\\n \\\"name\\\": \\\"Galle Dutch Fort\\\",\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\n \\\"location\\\": {\\n coordinates: [6.02453869574481, 80.21798550785017]\\n },\\n \\\"distance\\\": \\\"20km\\\",\\n \\\"timeToReach\\\": \\\"30min\\\",\\n \\\"images\\\": [],\\n \\\"methods\\\": ['Car']\\n };\\n const place = new Places(newPlace);\\n await place.save();\\n return place._id.toString();\\n};\\n\\nconst getNonExistingId = async () => {\\n const newPlace = {\\n \\\"name\\\": \\\"To be deleted\\\",\\n \\\"description\\\": \\\"Duis amet in ipsum ut.\\\",\\n \\\"location\\\": {\\n coordinates: [6.02453869574481, 80.21798550785017]\\n },\\n \\\"distance\\\": \\\"10km\\\",\\n \\\"timeToReach\\\": \\\"20min\\\",\\n \\\"images\\\": [],\\n \\\"methods\\\": ['Foot']\\n };\\n const place = new Places(newPlace);\\n await place.save();\\n await place.remove();\\n return place._id.toString();\\n};\\n\\nconst placesInDb = async () => {\\n const places = await Note.find({});\\n return places;\\n};\\n\\nmodule.exports = {\\n initialPlaces,\\n addPlacesToDb,\\n getExistingId,\\n getNonExistingId,\\n placesInDb\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlX2hlbHBlci5qcyJdLCJuYW1lcyI6WyJQbGFjZXMiLCJyZXF1aXJlIiwibW9ja1BsYWNlcyIsImluaXRpYWxQbGFjZXMiLCJhZGRQbGFjZXNUb0RiIiwicGxhY2VPYmplY3RzIiwibWFwIiwicGxhY2UiLCJwcm9taXNlQXJyYXkiLCJzYXZlIiwiUHJvbWlzZSIsImFsbCIsImdldEV4aXN0aW5nSWQiLCJuZXdQbGFjZSIsImNvb3JkaW5hdGVzIiwiX2lkIiwidG9TdHJpbmciLCJnZXROb25FeGlzdGluZ0lkIiwicmVtb3ZlIiwicGxhY2VzSW5EYiIsInBsYWNlcyIsIk5vdGUiLCJmaW5kIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsNkJBQUQsQ0FBdEI7O0FBQ0EsTUFBTUMsVUFBVSxHQUFHRCxPQUFPLENBQUMseUJBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsYUFBYSxHQUFHRCxVQUF0Qjs7QUFFQSxNQUFNRSxhQUFhLEdBQUcsWUFBWTtBQUM5QixRQUFNQyxZQUFZLEdBQUdGLGFBQWEsQ0FDN0JHLEdBRGdCLENBQ1pDLEtBQUssSUFBSSxJQUFJUCxNQUFKLENBQVdPLEtBQVgsQ0FERyxDQUFyQjtBQUVBLFFBQU1DLFlBQVksR0FBR0gsWUFBWSxDQUFDQyxHQUFiLENBQWlCQyxLQUFLLElBQUlBLEtBQUssQ0FBQ0UsSUFBTixFQUExQixDQUFyQjtBQUNBLFFBQU1DLE9BQU8sQ0FBQ0MsR0FBUixDQUFZSCxZQUFaLENBQU47QUFDSCxDQUxEOztBQU9BLE1BQU1JLGFBQWEsR0FBRyxZQUFZO0FBQzlCLFFBQU1DLFFBQVEsR0FBRztBQUNiLFlBQVEsa0JBREs7QUFFYixtQkFBZSwyTEFGRjtBQUdiLGdCQUFZO0FBQ1JDLE1BQUFBLFdBQVcsRUFBRSxDQUFDLGdCQUFELEVBQW1CLGlCQUFuQjtBQURMLEtBSEM7QUFNYixnQkFBWSxNQU5DO0FBT2IsbUJBQWUsT0FQRjtBQVFiLGNBQVUsRUFSRztBQVNiLGVBQVcsQ0FBQyxLQUFEO0FBVEUsR0FBakI7QUFXQSxRQUFNUCxLQUFLLEdBQUcsSUFBSVAsTUFBSixDQUFXYSxRQUFYLENBQWQ7QUFDQSxRQUFNTixLQUFLLENBQUNFLElBQU4sRUFBTjtBQUVBLFNBQU9GLEtBQUssQ0FBQ1EsR0FBTixDQUFVQyxRQUFWLEVBQVA7QUFDSCxDQWhCRDs7QUFrQkEsTUFBTUMsZ0JBQWdCLEdBQUcsWUFBWTtBQUNqQyxRQUFNSixRQUFRLEdBQUc7QUFDYixZQUFRLGVBREs7QUFFYixtQkFBZSx3QkFGRjtBQUdiLGdCQUFZO0FBQ1JDLE1BQUFBLFdBQVcsRUFBRSxDQUFDLGdCQUFELEVBQW1CLGlCQUFuQjtBQURMLEtBSEM7QUFNYixnQkFBWSxNQU5DO0FBT2IsbUJBQWUsT0FQRjtBQVFiLGNBQVUsRUFSRztBQVNiLGVBQVcsQ0FBQyxNQUFEO0FBVEUsR0FBakI7QUFXQSxRQUFNUCxLQUFLLEdBQUcsSUFBSVAsTUFBSixDQUFXYSxRQUFYLENBQWQ7QUFDQSxRQUFNTixLQUFLLENBQUNFLElBQU4sRUFBTjtBQUNBLFFBQU1GLEtBQUssQ0FBQ1csTUFBTixFQUFOO0FBRUEsU0FBT1gsS0FBSyxDQUFDUSxHQUFOLENBQVVDLFFBQVYsRUFBUDtBQUNILENBakJEOztBQW1CQSxNQUFNRyxVQUFVLEdBQUcsWUFBWTtBQUMzQixRQUFNQyxNQUFNLEdBQUcsTUFBTUMsSUFBSSxDQUFDQyxJQUFMLENBQVUsRUFBVixDQUFyQjtBQUNBLFNBQU9GLE1BQVA7QUFDSCxDQUhEOztBQUtBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYnJCLEVBQUFBLGFBRGE7QUFDRUMsRUFBQUEsYUFERjtBQUNpQlEsRUFBQUEsYUFEakI7QUFDZ0NLLEVBQUFBLGdCQURoQztBQUNrREUsRUFBQUE7QUFEbEQsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZXMgPSByZXF1aXJlKCcuLi8uLi9tb2RlbHMvdmlzaXRpbmdQbGFjZXMnKTtcclxuY29uc3QgbW9ja1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vY2tEYXRhL3BsYWNlcy5kYXRhJyk7XHJcblxyXG5jb25zdCBpbml0aWFsUGxhY2VzID0gbW9ja1BsYWNlcztcclxuXHJcbmNvbnN0IGFkZFBsYWNlc1RvRGIgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBwbGFjZU9iamVjdHMgPSBpbml0aWFsUGxhY2VzXHJcbiAgICAgICAgLm1hcChwbGFjZSA9PiBuZXcgUGxhY2VzKHBsYWNlKSk7XHJcbiAgICBjb25zdCBwcm9taXNlQXJyYXkgPSBwbGFjZU9iamVjdHMubWFwKHBsYWNlID0+IHBsYWNlLnNhdmUoKSk7XHJcbiAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlQXJyYXkpO1xyXG59XHJcblxyXG5jb25zdCBnZXRFeGlzdGluZ0lkID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgbmV3UGxhY2UgPSB7XHJcbiAgICAgICAgXCJuYW1lXCI6IFwiR2FsbGUgRHV0Y2ggRm9ydFwiLFxyXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEdWlzIGFtZXQgaW4gaXBzdW0gdXQgY29uc2VxdWF0LiBBbGlxdWlwIHF1aXMgcXVpcyBldCBsYWJvcmlzIG5vbiBtb2xsaXQgbmlzaSB1dCBtb2xsaXQgZnVnaWF0IG9jY2FlY2F0IGlkIG5vc3RydWQuIE1vbGxpdCBtb2xsaXQgYWxpcXVpcCByZXByZWhlbmRlcml0IHZvbHVwdGF0ZSBjb21tb2RvIGlkIG5vc3RydWQgbm9uLlwiLFxyXG4gICAgICAgIFwibG9jYXRpb25cIjoge1xyXG4gICAgICAgICAgICBjb29yZGluYXRlczogWzYuMDI0NTM4Njk1NzQ0ODEsIDgwLjIxNzk4NTUwNzg1MDE3XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJkaXN0YW5jZVwiOiBcIjIwa21cIixcclxuICAgICAgICBcInRpbWVUb1JlYWNoXCI6IFwiMzBtaW5cIixcclxuICAgICAgICBcImltYWdlc1wiOiBbXSxcclxuICAgICAgICBcIm1ldGhvZHNcIjogWydDYXInXVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHBsYWNlID0gbmV3IFBsYWNlcyhuZXdQbGFjZSk7XHJcbiAgICBhd2FpdCBwbGFjZS5zYXZlKCk7XHJcblxyXG4gICAgcmV0dXJuIHBsYWNlLl9pZC50b1N0cmluZygpO1xyXG59XHJcblxyXG5jb25zdCBnZXROb25FeGlzdGluZ0lkID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgbmV3UGxhY2UgPSB7XHJcbiAgICAgICAgXCJuYW1lXCI6IFwiVG8gYmUgZGVsZXRlZFwiLFxyXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEdWlzIGFtZXQgaW4gaXBzdW0gdXQuXCIsXHJcbiAgICAgICAgXCJsb2NhdGlvblwiOiB7XHJcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBbNi4wMjQ1Mzg2OTU3NDQ4MSwgODAuMjE3OTg1NTA3ODUwMTddXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcImRpc3RhbmNlXCI6IFwiMTBrbVwiLFxyXG4gICAgICAgIFwidGltZVRvUmVhY2hcIjogXCIyMG1pblwiLFxyXG4gICAgICAgIFwiaW1hZ2VzXCI6IFtdLFxyXG4gICAgICAgIFwibWV0aG9kc1wiOiBbJ0Zvb3QnXVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHBsYWNlID0gbmV3IFBsYWNlcyhuZXdQbGFjZSk7XHJcbiAgICBhd2FpdCBwbGFjZS5zYXZlKCk7XHJcbiAgICBhd2FpdCBwbGFjZS5yZW1vdmUoKTtcclxuXHJcbiAgICByZXR1cm4gcGxhY2UuX2lkLnRvU3RyaW5nKCk7XHJcbn1cclxuXHJcbmNvbnN0IHBsYWNlc0luRGIgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBwbGFjZXMgPSBhd2FpdCBOb3RlLmZpbmQoe30pO1xyXG4gICAgcmV0dXJuIHBsYWNlcztcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBpbml0aWFsUGxhY2VzLCBhZGRQbGFjZXNUb0RiLCBnZXRFeGlzdGluZ0lkLCBnZXROb25FeGlzdGluZ0lkLCBwbGFjZXNJbkRiXHJcbn0iXX0=\",\"originalCode\":\"const Places = require('../../models/visitingPlaces');\\r\\nconst mockPlaces = require('../mockData/places.data');\\r\\n\\r\\nconst initialPlaces = mockPlaces;\\r\\n\\r\\nconst addPlacesToDb = async () => {\\r\\n const placeObjects = initialPlaces\\r\\n .map(place => new Places(place));\\r\\n const promiseArray = placeObjects.map(place => place.save());\\r\\n await Promise.all(promiseArray);\\r\\n}\\r\\n\\r\\nconst getExistingId = async () => {\\r\\n const newPlace = {\\r\\n \\\"name\\\": \\\"Galle Dutch Fort\\\",\\r\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\r\\n \\\"location\\\": {\\r\\n coordinates: [6.02453869574481, 80.21798550785017]\\r\\n },\\r\\n \\\"distance\\\": \\\"20km\\\",\\r\\n \\\"timeToReach\\\": \\\"30min\\\",\\r\\n \\\"images\\\": [],\\r\\n \\\"methods\\\": ['Car']\\r\\n };\\r\\n const place = new Places(newPlace);\\r\\n await place.save();\\r\\n\\r\\n return place._id.toString();\\r\\n}\\r\\n\\r\\nconst getNonExistingId = async () => {\\r\\n const newPlace = {\\r\\n \\\"name\\\": \\\"To be deleted\\\",\\r\\n \\\"description\\\": \\\"Duis amet in ipsum ut.\\\",\\r\\n \\\"location\\\": {\\r\\n coordinates: [6.02453869574481, 80.21798550785017]\\r\\n },\\r\\n \\\"distance\\\": \\\"10km\\\",\\r\\n \\\"timeToReach\\\": \\\"20min\\\",\\r\\n \\\"images\\\": [],\\r\\n \\\"methods\\\": ['Foot']\\r\\n };\\r\\n const place = new Places(newPlace);\\r\\n await place.save();\\r\\n await place.remove();\\r\\n\\r\\n return place._id.toString();\\r\\n}\\r\\n\\r\\nconst placesInDb = async () => {\\r\\n const places = await Note.find({});\\r\\n return places;\\r\\n}\\r\\n\\r\\nmodule.exports = {\\r\\n initialPlaces, addPlacesToDb, getExistingId, getNonExistingId, placesInDb\\r\\n}\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/f7/place_helper_f736d6463224b7f5175e218faaaa4ce9.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"3229\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\place_helper.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":6530,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":6527,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"addPlacesToDb\",\"ranges\":[{\"startOffset\":258,\"endOffset\":442,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":313,\"endOffset\":339,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":382,\"endOffset\":403,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"getExistingId\",\"ranges\":[{\"startOffset\":467,\"endOffset\":1014,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getNonExistingId\",\"ranges\":[{\"startOffset\":1042,\"endOffset\":1448,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"placesInDb\",\"ranges\":[{\"startOffset\":1470,\"endOffset\":1540,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const places = [{\\n \\\"name\\\": \\\"Mirissa\\\",\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\n \\\"location\\\": {\\n \\\"coordinates\\\": [5.9447392257447005, 80.45886764887479]\\n },\\n \\\"distance\\\": \\\"20km\\\",\\n \\\"timeToReach\\\": \\\"30min\\\",\\n \\\"images\\\": [],\\n \\\"methods\\\": ['Bus', 'Car', 'Foot']\\n}, {\\n \\\"name\\\": \\\"Unawatuna\\\",\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\n \\\"location\\\": {\\n \\\"coordinates\\\": [6.009847327808601, 80.24929493589147]\\n },\\n \\\"distance\\\": \\\"20km\\\",\\n \\\"timeToReach\\\": \\\"30min\\\",\\n \\\"images\\\": [],\\n \\\"methods\\\": ['Bus', 'Foot']\\n}, {\\n \\\"name\\\": \\\"Jungle Beach\\\",\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\n \\\"location\\\": {\\n \\\"coordinates\\\": [6.0175219725350635, 80.23893195618767]\\n },\\n \\\"distance\\\": \\\"20km\\\",\\n \\\"timeToReach\\\": \\\"30min\\\",\\n \\\"images\\\": [],\\n \\\"methods\\\": ['Foot']\\n}];\\nmodule.exports = places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlcy5kYXRhLmpzIl0sIm5hbWVzIjpbInBsYWNlcyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE1BQU0sR0FBRyxDQUNYO0FBQ0ksVUFBUSxTQURaO0FBRUksaUJBQWUsMkxBRm5CO0FBR0ksY0FBWTtBQUNSLG1CQUFlLENBQUMsa0JBQUQsRUFBcUIsaUJBQXJCO0FBRFAsR0FIaEI7QUFNSSxjQUFZLE1BTmhCO0FBT0ksaUJBQWUsT0FQbkI7QUFRSSxZQUFVLEVBUmQ7QUFTSSxhQUFXLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxNQUFmO0FBVGYsQ0FEVyxFQVlYO0FBQ0ksVUFBUSxXQURaO0FBRUksaUJBQWUsMkxBRm5CO0FBR0ksY0FBWTtBQUNSLG1CQUFlLENBQUMsaUJBQUQsRUFBb0IsaUJBQXBCO0FBRFAsR0FIaEI7QUFNSSxjQUFZLE1BTmhCO0FBT0ksaUJBQWUsT0FQbkI7QUFRSSxZQUFVLEVBUmQ7QUFTSSxhQUFXLENBQUMsS0FBRCxFQUFRLE1BQVI7QUFUZixDQVpXLEVBdUJYO0FBQ0ksVUFBUSxjQURaO0FBRUksaUJBQWUsMkxBRm5CO0FBR0ksY0FBWTtBQUNSLG1CQUFlLENBQUMsa0JBQUQsRUFBcUIsaUJBQXJCO0FBRFAsR0FIaEI7QUFNSSxjQUFZLE1BTmhCO0FBT0ksaUJBQWUsT0FQbkI7QUFRSSxZQUFVLEVBUmQ7QUFTSSxhQUFXLENBQUMsTUFBRDtBQVRmLENBdkJXLENBQWY7QUFvQ0FDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkYsTUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBwbGFjZXMgPSBbXHJcbiAgICB7XHJcbiAgICAgICAgXCJuYW1lXCI6IFwiTWlyaXNzYVwiLFxyXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEdWlzIGFtZXQgaW4gaXBzdW0gdXQgY29uc2VxdWF0LiBBbGlxdWlwIHF1aXMgcXVpcyBldCBsYWJvcmlzIG5vbiBtb2xsaXQgbmlzaSB1dCBtb2xsaXQgZnVnaWF0IG9jY2FlY2F0IGlkIG5vc3RydWQuIE1vbGxpdCBtb2xsaXQgYWxpcXVpcCByZXByZWhlbmRlcml0IHZvbHVwdGF0ZSBjb21tb2RvIGlkIG5vc3RydWQgbm9uLlwiLFxyXG4gICAgICAgIFwibG9jYXRpb25cIjoge1xyXG4gICAgICAgICAgICBcImNvb3JkaW5hdGVzXCI6IFs1Ljk0NDczOTIyNTc0NDcwMDUsIDgwLjQ1ODg2NzY0ODg3NDc5XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJkaXN0YW5jZVwiOiBcIjIwa21cIixcclxuICAgICAgICBcInRpbWVUb1JlYWNoXCI6IFwiMzBtaW5cIixcclxuICAgICAgICBcImltYWdlc1wiOiBbXSxcclxuICAgICAgICBcIm1ldGhvZHNcIjogWydCdXMnLCAnQ2FyJywgJ0Zvb3QnXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBcIm5hbWVcIjogXCJVbmF3YXR1bmFcIixcclxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRHVpcyBhbWV0IGluIGlwc3VtIHV0IGNvbnNlcXVhdC4gQWxpcXVpcCBxdWlzIHF1aXMgZXQgbGFib3JpcyBub24gbW9sbGl0IG5pc2kgdXQgbW9sbGl0IGZ1Z2lhdCBvY2NhZWNhdCBpZCBub3N0cnVkLiBNb2xsaXQgbW9sbGl0IGFsaXF1aXAgcmVwcmVoZW5kZXJpdCB2b2x1cHRhdGUgY29tbW9kbyBpZCBub3N0cnVkIG5vbi5cIixcclxuICAgICAgICBcImxvY2F0aW9uXCI6IHtcclxuICAgICAgICAgICAgXCJjb29yZGluYXRlc1wiOiBbNi4wMDk4NDczMjc4MDg2MDEsIDgwLjI0OTI5NDkzNTg5MTQ3XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJkaXN0YW5jZVwiOiBcIjIwa21cIixcclxuICAgICAgICBcInRpbWVUb1JlYWNoXCI6IFwiMzBtaW5cIixcclxuICAgICAgICBcImltYWdlc1wiOiBbXSxcclxuICAgICAgICBcIm1ldGhvZHNcIjogWydCdXMnLCAnRm9vdCddXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIFwibmFtZVwiOiBcIkp1bmdsZSBCZWFjaFwiLFxyXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEdWlzIGFtZXQgaW4gaXBzdW0gdXQgY29uc2VxdWF0LiBBbGlxdWlwIHF1aXMgcXVpcyBldCBsYWJvcmlzIG5vbiBtb2xsaXQgbmlzaSB1dCBtb2xsaXQgZnVnaWF0IG9jY2FlY2F0IGlkIG5vc3RydWQuIE1vbGxpdCBtb2xsaXQgYWxpcXVpcCByZXByZWhlbmRlcml0IHZvbHVwdGF0ZSBjb21tb2RvIGlkIG5vc3RydWQgbm9uLlwiLFxyXG4gICAgICAgIFwibG9jYXRpb25cIjoge1xyXG4gICAgICAgICAgICBcImNvb3JkaW5hdGVzXCI6IFs2LjAxNzUyMTk3MjUzNTA2MzUsIDgwLjIzODkzMTk1NjE4NzY3XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJkaXN0YW5jZVwiOiBcIjIwa21cIixcclxuICAgICAgICBcInRpbWVUb1JlYWNoXCI6IFwiMzBtaW5cIixcclxuICAgICAgICBcImltYWdlc1wiOiBbXSxcclxuICAgICAgICBcIm1ldGhvZHNcIjogWydGb290J11cclxuICAgIH0sXHJcbl07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHBsYWNlczsiXX0=\",\"originalCode\":\"const places = [\\r\\n {\\r\\n \\\"name\\\": \\\"Mirissa\\\",\\r\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\r\\n \\\"location\\\": {\\r\\n \\\"coordinates\\\": [5.9447392257447005, 80.45886764887479]\\r\\n },\\r\\n \\\"distance\\\": \\\"20km\\\",\\r\\n \\\"timeToReach\\\": \\\"30min\\\",\\r\\n \\\"images\\\": [],\\r\\n \\\"methods\\\": ['Bus', 'Car', 'Foot']\\r\\n },\\r\\n {\\r\\n \\\"name\\\": \\\"Unawatuna\\\",\\r\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\r\\n \\\"location\\\": {\\r\\n \\\"coordinates\\\": [6.009847327808601, 80.24929493589147]\\r\\n },\\r\\n \\\"distance\\\": \\\"20km\\\",\\r\\n \\\"timeToReach\\\": \\\"30min\\\",\\r\\n \\\"images\\\": [],\\r\\n \\\"methods\\\": ['Bus', 'Foot']\\r\\n },\\r\\n {\\r\\n \\\"name\\\": \\\"Jungle Beach\\\",\\r\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\r\\n \\\"location\\\": {\\r\\n \\\"coordinates\\\": [6.0175219725350635, 80.23893195618767]\\r\\n },\\r\\n \\\"distance\\\": \\\"20km\\\",\\r\\n \\\"timeToReach\\\": \\\"30min\\\",\\r\\n \\\"images\\\": [],\\r\\n \\\"methods\\\": ['Foot']\\r\\n },\\r\\n];\\r\\n\\r\\nmodule.exports = places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c7/placesdata_c7d929916abb793b06246bc83618a0c3.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"3230\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\mockData\\\\places.data.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4573,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4570,\"count\":1}],\"isBlockCoverage\":false}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":6,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1614411967404,\"runtime\":1752,\"slow\":false,\"start\":1614411965652},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\users.test.js\",\"testResults\":[{\"ancestorTitles\":[\"Admin SignUp & Login\"],\"duration\":234,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Admin SignUp & Login Admin SignUp - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Admin SignUp - 200\"},{\"ancestorTitles\":[\"Admin SignUp & Login\"],\"duration\":15,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Admin SignUp & Login Admin SignUp - Already Existing - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Admin SignUp - Already Existing - 403\"},{\"ancestorTitles\":[\"Admin SignUp & Login\"],\"duration\":193,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"Admin SignUp & Login Admin Login with correct credentials - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"Admin Login with correct credentials - 200\"},{\"ancestorTitles\":[\"User Login\"],\"duration\":199,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"User Login User Login with correct credentials - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"User Login with correct credentials - 200\"},{\"ancestorTitles\":[\"User Login\"],\"duration\":302,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"User Login User Login with wrong credentials - wrong password - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"User Login with wrong credentials - wrong password - 401\"},{\"ancestorTitles\":[\"User Login\"],\"duration\":18,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"User Login User Login with wrong credentials - wrong username - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"User Login with wrong credentials - wrong username - 401\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMsbUJBQUQsQ0FBaEM7O0FBQ0EsSUFBSU0sT0FBTyxHQUFHTixPQUFPLENBQUMsaUJBQUQsQ0FBckI7O0FBQ0EsSUFBSU8sU0FBUyxHQUFHUCxPQUFPLENBQUMsb0JBQUQsQ0FBUCxDQUE4Qk0sT0FBOUIsQ0FBaEI7O0FBQ0EsSUFBSUUsWUFBWSxHQUFHUixPQUFPLENBQUMsZUFBRCxDQUExQjs7QUFDQSxJQUFJUyxNQUFNLEdBQUdULE9BQU8sQ0FBQyxRQUFELENBQXBCOztBQUNBLElBQUlVLFFBQVEsR0FBR1YsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsTUFBTVcsUUFBUSxHQUFHWCxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQUEsT0FBTyxDQUFDLFFBQUQsQ0FBUCxDQUFrQlksTUFBbEI7O0FBRUEsSUFBSUMsVUFBVSxHQUFHYixPQUFPLENBQUMscUJBQUQsQ0FBeEI7O0FBQ0EsSUFBSWMsY0FBYyxHQUFHZCxPQUFPLENBQUMseUJBQUQsQ0FBNUI7O0FBQ0EsSUFBSWUsV0FBVyxHQUFHZixPQUFPLENBQUMsc0JBQUQsQ0FBekI7O0FBQ0EsSUFBSWdCLGNBQWMsR0FBR2hCLE9BQU8sQ0FBQyx5QkFBRCxDQUE1Qjs7QUFDQSxJQUFJaUIsYUFBYSxHQUFHakIsT0FBTyxDQUFDLHdCQUFELENBQTNCOztBQUNBLElBQUlrQixlQUFlLEdBQUdsQixPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBRUEsSUFBSW1CLEdBQUcsR0FBR2xCLE9BQU8sRUFBakIsQyxDQUVBOztBQUNBa0IsR0FBRyxDQUFDQyxHQUFKLENBQVEsT0FBUixFQUFpQmpCLElBQUksQ0FBQ2tCLElBQUwsQ0FBVUMsU0FBVixFQUFxQixPQUFyQixDQUFqQjtBQUNBSCxHQUFHLENBQUNDLEdBQUosQ0FBUSxhQUFSLEVBQXVCLE1BQXZCO0FBQ0FELEdBQUcsQ0FBQ0ksR0FBSixDQUFRckIsSUFBSSxFQUFaO0FBQ0FpQixHQUFHLENBQUNJLEdBQUosQ0FBUWIsUUFBUSxDQUFDYyxVQUFULEVBQVI7QUFFQUwsR0FBRyxDQUFDSSxHQUFKLENBQVFuQixVQUFVLENBQUNxQixJQUFYLEVBQVI7QUFFQU4sR0FBRyxDQUFDSSxHQUFKLENBQVFmLFlBQVksQ0FBQyxvQkFBRCxDQUFwQixFLENBQ0E7O0FBQ0FXLEdBQUcsQ0FBQ0ksR0FBSixDQUFRdEIsT0FBTyxDQUFDd0IsSUFBUixFQUFSO0FBQ0FOLEdBQUcsQ0FBQ0ksR0FBSixDQUFRdEIsT0FBTyxDQUFDeUIsVUFBUixDQUFtQjtBQUFFQyxFQUFBQSxRQUFRLEVBQUU7QUFBWixDQUFuQixDQUFSO0FBQ0FSLEdBQUcsQ0FBQ0ksR0FBSixDQUFRZixZQUFZLEVBQXBCLEUsQ0FDQTs7QUFDQVcsR0FBRyxDQUFDSSxHQUFKLENBQVF0QixPQUFPLENBQUMyQixNQUFSLENBQWV6QixJQUFJLENBQUNrQixJQUFMLENBQVVDLFNBQVYsRUFBcUIsT0FBckIsQ0FBZixDQUFSO0FBRUEsSUFBSU8sR0FBRyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBdEI7O0FBQ0EsSUFBSUYsT0FBTyxDQUFDQyxHQUFSLENBQVlFLFFBQVosS0FBeUIsTUFBN0IsRUFBcUM7QUFDbkNKLEVBQUFBLEdBQUcsR0FBR0MsT0FBTyxDQUFDQyxHQUFSLENBQVlHLFlBQWxCO0FBQ0Q7O0FBQ0R2QixRQUFRLENBQUN3QixPQUFULENBQWlCTixHQUFqQixFQUFzQjtBQUFFTyxFQUFBQSxlQUFlLEVBQUUsSUFBbkI7QUFBeUJDLEVBQUFBLGNBQWMsRUFBRSxJQUF6QztBQUErQ0MsRUFBQUEsa0JBQWtCLEVBQUU7QUFBbkUsQ0FBdEIsRUFBaUdDLElBQWpHLENBQXVHQyxFQUFELElBQVEsQ0FDN0csQ0FERCxFQUNJQyxHQUFELElBQVM7QUFDVixNQUFJQSxHQUFKLEVBQVM7QUFDUEMsSUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksaUNBQVo7QUFDRCxHQUZELE1BRU87QUFDTEQsSUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVkseUJBQVo7QUFDRDtBQUNGLENBUEQ7QUFTQXhCLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFFBQVIsRUFBa0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/01/app_010e21b7416079df77678cc6cb70a530.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":2}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nvar upload = require('../controllers/upload');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\", authenticate.verifyUser, upload.UploadUserImage);\\nuserRouter.get('/logout', authenticate.verifyUser, userController.logout);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsInVwbG9hZCIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwiVXBsb2FkVXNlckltYWdlIiwiZ2V0IiwibG9nb3V0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLElBQUlJLE1BQU0sR0FBR0osT0FBTyxDQUFDLHVCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUssRUFBQUE7QUFBRixJQUFrQkwsT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlNLFlBQVksR0FBR04sT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlPLGVBQWUsR0FBR1AsT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlRLGNBQWMsR0FBR1IsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1TLElBQUksR0FBR1QsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1MsR0FBWCxDQUFlUCxVQUFVLENBQUNRLElBQVgsRUFBZjtBQUVBVixVQUFVLENBQUNXLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZixVQUFVLENBQUNnQixJQUFYLENBQWdCLGVBQWhCLEVBQWlDUixJQUFJLENBQUNJLGVBQXRDLEVBQXVETCxjQUFjLENBQUNVLFdBQXRFO0FBRUFqQixVQUFVLENBQUNnQixJQUFYLENBQWdCLFFBQWhCLEVBQTBCUixJQUFJLENBQUNJLGVBQS9CLEVBQWdETCxjQUFjLENBQUNXLEtBQS9EO0FBRUFsQixVQUFVLENBQUNnQixJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBcEIsVUFBVSxDQUFDZ0IsSUFBWCxDQUFnQiwyQkFBaEIsRUFBNENYLFlBQVksQ0FBQ2MsVUFBekQsRUFBcUVoQixNQUFNLENBQUNrQixlQUE1RTtBQUVBckIsVUFBVSxDQUFDc0IsR0FBWCxDQUFlLFNBQWYsRUFBeUJqQixZQUFZLENBQUNjLFVBQXRDLEVBQWtEWixjQUFjLENBQUNnQixNQUFqRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJ6QixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxudmFyIHVwbG9hZCA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3VwbG9hZCcpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG52YXIgdXNlckNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy91c2VyQ29udHJvbGxlcicpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcblxyXG51c2VyUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG51c2VyUm91dGVyLm9wdGlvbnMoJyonLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcblxyXG51c2VyUm91dGVyLnBvc3QoJy9zaWdudXAvYWRtaW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIuc2lnbnVwQWRtaW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvbG9naW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIubG9naW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvY2hhbmdlcGFzc293b3JkLzppZCcsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVzZXJDb250cm9sbGVyLmNoYW5nZVBhc3Nvd29yZCk7XHJcblxyXG51c2VyUm91dGVyLnBvc3QoXCIvdXBkYXRlcHJvZmlsZXBpY3R1cmUvOmlkXCIsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVwbG9hZC5VcGxvYWRVc2VySW1hZ2UpO1xyXG5cclxudXNlclJvdXRlci5nZXQoJy9sb2dvdXQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5sb2dvdXQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nvar upload = require('../controllers/upload');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\",authenticate.verifyUser, upload.UploadUserImage);\\r\\n\\r\\nuserRouter.get('/logout',authenticate.verifyUser, userController.logout);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/a6/userRouter_a6221ff3be20743fe1c0fd1dc9fd8435.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4566,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4563,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":606,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const sharp = require('sharp');\\n\\nconst uid = require('uid');\\n\\nconst fs = require('fs');\\n\\nconst Users = require('../models/users');\\n\\nconst Places = require('../models/visitingPlaces');\\n\\nconst uploadFile = async (req, res) => {\\n try {\\n await upload(req, res);\\n\\n if (req.file == undefined) {\\n return res.send(`You must select a file.`);\\n }\\n\\n return res.send(`File has been uploaded.`);\\n } catch (error) {\\n return res.send(`Error when trying upload image: ${error}`);\\n }\\n};\\n\\nconst UploadUserImage = async (req, res, next) => {\\n try {\\n const user_id = req.params._id;\\n const user = await Users.findById(user_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/userImages/${imageUrl}`;\\n let previousImagePath = `images/userImages/${user.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'profile.png';\\n }\\n\\n user.image = imageUrl;\\n await user.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nconst uploadPlaceImage = async (req, res, next) => {\\n try {\\n const place_id = req.params._id;\\n const user = await Places.findById(place_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/placeImages/${imageUrl}`;\\n let previousImagePath = `images/placeImages/${place.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'image.png';\\n }\\n\\n place.image = imageUrl;\\n await place.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nexports.UploadUserImage = UploadUserImage;\\nexports.uploadFile = uploadFile;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVwbG9hZC5qcyJdLCJuYW1lcyI6WyJzaGFycCIsInJlcXVpcmUiLCJ1aWQiLCJmcyIsIlVzZXJzIiwiUGxhY2VzIiwidXBsb2FkRmlsZSIsInJlcSIsInJlcyIsInVwbG9hZCIsImZpbGUiLCJ1bmRlZmluZWQiLCJzZW5kIiwiZXJyb3IiLCJVcGxvYWRVc2VySW1hZ2UiLCJuZXh0IiwidXNlcl9pZCIsInBhcmFtcyIsIl9pZCIsInVzZXIiLCJmaW5kQnlJZCIsImltYWdlVXJsIiwib3JpZ2luYWxuYW1lIiwiZmlsZW5hbWUiLCJwcmV2aW91c0ltYWdlUGF0aCIsImltYWdlIiwiaW1hZ2VFeGlzdCIsImV4aXN0c1N5bmMiLCJkZWxldGVJbWFnZSIsInBhdGgiLCJyb3RhdGUiLCJyZXNpemUiLCJ0b0ZpbGUiLCJ1bmxpbmsiLCJlcnIiLCJzYXZlIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwibWVzc2FnZSIsInVwbG9hZFBsYWNlSW1hZ2UiLCJwbGFjZV9pZCIsInBsYWNlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsT0FBRCxDQUFyQjs7QUFDQSxNQUFNQyxHQUFHLEdBQUdELE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLElBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsS0FBSyxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBckI7O0FBQ0EsTUFBTUksTUFBTSxHQUFHSixPQUFPLENBQUMsMEJBQUQsQ0FBdEI7O0FBRUEsTUFBTUssVUFBVSxHQUFHLE9BQU9DLEdBQVAsRUFBWUMsR0FBWixLQUFvQjtBQUNuQyxNQUFJO0FBQ0EsVUFBTUMsTUFBTSxDQUFDRixHQUFELEVBQU1DLEdBQU4sQ0FBWjs7QUFFQSxRQUFJRCxHQUFHLENBQUNHLElBQUosSUFBWUMsU0FBaEIsRUFBMkI7QUFDdkIsYUFBT0gsR0FBRyxDQUFDSSxJQUFK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QUFkLEVBQThCLGtCQUE5QjtBQUNBN0IsSUFBQUEsR0FBRyxDQUFDOEIsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCQyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNIO0FBQ0osQ0F6Q0Q7O0FBMkNBSSxPQUFPLENBQUM5QixlQUFSLEdBQTBCQSxlQUExQjtBQUNBOEIsT0FBTyxDQUFDdEMsVUFBUixHQUFxQkEsVUFBckIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzaGFycCA9IHJlcXVpcmUoJ3NoYXJwJyk7XHJcbmNvbnN0IHVpZCA9IHJlcXVpcmUoJ3VpZCcpO1xyXG5jb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XHJcbmNvbnN0IFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFBsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpXHJcblxyXG5jb25zdCB1cGxvYWRGaWxlID0gYXN5bmMgKHJlcSwgcmVzKSA9PiB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHVwbG9hZChyZXEsIHJlcyk7XHJcblxyXG4gICAgICAgIGlmIChyZXEuZmlsZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBZb3UgbXVzdCBzZWxlY3QgYSBmaWxlLmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBGaWxlIGhhcyBiZWVuIHVwbG9hZGVkLmApO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICByZXR1cm4gcmVzLnNlbmQoYEVycm9yIHdoZW4gdHJ5aW5nIHVwbG9hZCBpbWFnZTogJHtlcnJvcn1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IFVwbG9hZFVzZXJJbWFnZSA9IGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBjb25zdCB1c2VyX2lkID0gcmVxLnBhcmFtcy5faWQ7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IGF3YWl0IFVzZXJzLmZpbmRCeUlkKHVzZXJfaWQpO1xyXG5cclxuICAgICAgICBsZXQgaW1hZ2VVcmw7XHJcbiAgICAgICAgaWYgKHJlcS5maWxlKSB7XHJcbiAgICAgICAgICAgIGltYWdlVXJsID0gYCR7dWlkKCl9X18ke3JlcS5maWxlLm9yaWdpbmFsbmFtZX1gO1xyXG4gICAgICAgICAgICBsZXQgZmlsZW5hbWUgPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHtpbWFnZVVybH1gO1xyXG4gICAgICAgICAgICBsZXQgcHJldmlvdXNJbWFnZVBhdGggPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHt1c2VyLmltYWdlfWA7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpbWFnZUV4aXN0ID0gZnMuZXhpc3RzU3luYyhwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIGlmIChpbWFnZUV4aXN0KSB7XHJcbiAgICAgICAgICAgICAgICBkZWxldGVJbWFnZShwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYXdhaXQgc2hhcnAocmVxLmZpbGUucGF0aClcclxuICAgICAgICAgICAgICAgIC5yb3RhdGUoKVxyXG4gICAgICAgICAgICAgICAgLnJlc2l6ZSg1MDAsIDUwMClcclxuICAgICAgICAgICAgICAgIC50b0ZpbGUoZmlsZW5hbWUpO1xyXG5cclxuICAgICAgICAgICAgZnMudW5saW5rKHJlcS5maWxlLnBhdGgsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9ICdwcm9maWxlLnBuZyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1c2VyLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgdXNlci5zYXZlKCk7XHJcblxyXG5cclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1N1Y2Nlc3NmdWxseSB1cGRhdGVkIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcblxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgdXBkYXRpbmcgcHJvZmlsZSBwaWN0dXJlJyB9KTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IHVwbG9hZFBsYWNlSW1hZ2UgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfaWQgPSByZXEucGFyYW1zLl9pZDtcclxuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgUGxhY2VzLmZpbmRCeUlkKHBsYWNlX2lkKTtcclxuXHJcbiAgICAgICAgbGV0IGltYWdlVXJsO1xyXG4gICAgICAgIGlmIChyZXEuZmlsZSkge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9IGAke3VpZCgpfV9fJHtyZXEuZmlsZS5vcmlnaW5hbG5hbWV9YDtcclxuICAgICAgICAgICAgbGV0IGZpbGVuYW1lID0gYGltYWdlcy9wbGFjZUltYWdlcy8ke2ltYWdlVXJsfWA7XHJcbiAgICAgICAgICAgIGxldCBwcmV2aW91c0ltYWdlUGF0aCA9IGBpbWFnZXMvcGxhY2VJbWFnZXMvJHtwbGFjZS5pbWFnZX1gO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaW1hZ2VFeGlzdCA9IGZzLmV4aXN0c1N5bmMocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICBpZiAoaW1hZ2VFeGlzdCkge1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlSW1hZ2UocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGF3YWl0IHNoYXJwKHJlcS5maWxlLnBhdGgpXHJcbiAgICAgICAgICAgICAgICAucm90YXRlKClcclxuICAgICAgICAgICAgICAgIC5yZXNpemUoNTAwLCA1MDApXHJcbiAgICAgICAgICAgICAgICAudG9GaWxlKGZpbGVuYW1lKTtcclxuXHJcbiAgICAgICAgICAgIGZzLnVubGluayhyZXEuZmlsZS5wYXRoLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaW1hZ2VVcmwgPSAnaW1hZ2UucG5nJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBsYWNlLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgcGxhY2Uuc2F2ZSgpO1xyXG5cclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6ICdTdWNjZXNzZnVsbHkgdXBkYXRlZCBwcm9maWxlIHBpY3R1cmUnIH0pO1xyXG5cclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnRzLlVwbG9hZFVzZXJJbWFnZSA9IFVwbG9hZFVzZXJJbWFnZTtcclxuZXhwb3J0cy51cGxvYWRGaWxlID0gdXBsb2FkRmlsZTsiXX0=\",\"originalCode\":\"const sharp = require('sharp');\\r\\nconst uid = require('uid');\\r\\nconst fs = require('fs');\\r\\nconst Users = require('../models/users');\\r\\nconst Places = require('../models/visitingPlaces')\\r\\n\\r\\nconst uploadFile = async (req, res) => {\\r\\n try {\\r\\n await upload(req, res);\\r\\n\\r\\n if (req.file == undefined) {\\r\\n return res.send(`You must select a file.`);\\r\\n }\\r\\n\\r\\n return res.send(`File has been uploaded.`);\\r\\n } catch (error) {\\r\\n return res.send(`Error when trying upload image: ${error}`);\\r\\n }\\r\\n};\\r\\n\\r\\nconst UploadUserImage = async (req, res, next) => {\\r\\n try {\\r\\n const user_id = req.params._id;\\r\\n const user = await Users.findById(user_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/userImages/${imageUrl}`;\\r\\n let previousImagePath = `images/userImages/${user.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'profile.png';\\r\\n }\\r\\n\\r\\n user.image = imageUrl;\\r\\n await user.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nconst uploadPlaceImage = async (req, res, next) => {\\r\\n try {\\r\\n const place_id = req.params._id;\\r\\n const user = await Places.findById(place_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/placeImages/${imageUrl}`;\\r\\n let previousImagePath = `images/placeImages/${place.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'image.png';\\r\\n }\\r\\n\\r\\n place.image = imageUrl;\\r\\n await place.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nexports.UploadUserImage = UploadUserImage;\\r\\nexports.uploadFile = uploadFile;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/70/upload_70c590d2bd713c9562e3916387ba4116.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\upload.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":12791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":12788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"uploadFile\",\"ranges\":[{\"startOffset\":293,\"endOffset\":580,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"UploadUserImage\",\"ranges\":[{\"startOffset\":607,\"endOffset\":1704,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"uploadPlaceImage\",\"ranges\":[{\"startOffset\":1732,\"endOffset\":2835,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fa/users_fa250a82bd410ffb1909f920e93eed19.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2324\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c4/visitingPlaces_c4ccc91c117df8c4aeada72a82534688.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2335\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Moderater Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFBVCxDQUF1Qk4sSUFBSSxDQUFDTSxhQUFMLEVBQXZCO0FBQ0FWLFFBQVEsQ0FBQ1csZUFBVCxDQUF5QlAsSUFBSSxDQUFDTyxlQUFMLEVBQXpCOztBQUVBQyxPQUFPLENBQUNDLFFBQVIsR0FBb0JDLElBQUQsSUFBVTtBQUN6QixTQUFPUCxHQUFHLENBQUNRLElBQUosQ0FBU0QsSUFBVCxFQUFlRSxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsU0FBM0IsRUFDSDtBQUFFQyxJQUFBQSxTQUFTLEVBQUU7QUFBYixHQURHLENBQVA7QUFFSCxDQUhEOztBQUtBLElBQUlDLElBQUksR0FBRyxFQUFYO0FBQ0FBLElBQUksQ0FBQ0MsY0FBTCxHQUFzQmYsVUFBVSxDQUFDZ0IsMkJBQVgsRUFBdEI7QUFDQUYsSUFBSSxDQUFDRyxXQUFMLEdBQW1CUCxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsU0FBL0I7QUFFQU4sT0FBTyxDQUFDWSxXQUFSLEdBQXNCeEIsUUFBUSxDQUFDUSxHQUFULENBQWEsSUFBSUgsV0FBSixDQUFnQmUsSUFBaEIsRUFDL0IsQ0FBQ0ssV0FBRCxFQUFjQyxJQUFkLEtBQXVCO0FBQ25CdEIsRUFBQUEsSUFBSSxDQUFDdUIsT0FBTCxDQUFhO0FBQUVDLElBQUFBLEdBQUcsRUFBRUgsV0FBVyxDQUFDRztBQUFuQixHQUFiLEVBQXVDLENBQUNDLEdBQUQsRUFBTWYsSUFBTixLQUFlO0FBQ2xELFFBQUllLEdBQUosRUFBUztBQUNMLGFBQU9ILElBQUksQ0FBQ0csR0FBRCxFQUFNLEtBQU4sQ0FBWDtBQUNILEtBRkQsTUFHSyxJQUFJZixJQUFKLEVBQVU7QUFDWCxhQUFPWSxJQUFJLENBQUMsSUFBRCxFQUFPWixJQUFQLENBQVg7QUFDSCxLQUZJLE1BR0E7QUFDRCxhQUFPWSxJQUFJLENBQUMsSUFBRCxFQUFPLEtBQVAsQ0FBWDtBQUNIO0FBQ0osR0FWRDtBQVdILENBYjhCLENBQWIsQ0FBdEI7QUFlQWQsT0FBTyxDQUFDa0IsVUFBUixHQUFxQjlCLFFBQVEsQ0FBQ1MsWUFBVCxDQUFzQixLQUF0QixFQUE2QjtBQUFFc0IsRUFBQUEsT0FBTyxFQUFFO0FBQVgsQ0FBN0IsQ0FBckI7O0FBRUFuQixPQUFPLENBQUNvQixXQUFSLEdBQXNCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3RDLE1BQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsT0FBckIsRUFBOEI7QUFDMUIsV0FBT0QsSUFBSSxFQUFYO0FBQ0gsR0FGRCxNQUdLLElBQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsT0FBckIsRUFBOEI7QUFDL0JQLElBQUFBLEdBQUcsR0FBRyxJQUFJUSxLQUFKLENBQVUsbURBQVYsQ0FBTjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLE1BQUosR0FBYSxHQUFiO0FBQ0EsV0FBT0gsSUFBSSxDQUFDTixHQUFELENBQVg7QUFDSCxHQUpJLE1BS0E7QUFDREEsSUFBQUEsR0FBRyxHQUFHLElBQUlRLEtBQUosQ0FBVSw0QkFBVixDQUFOO0FBQ0FSLElBQUFBLEdBQUcsQ0FBQ1MsTUFBSixHQUFhLEdBQWI7QUFDQSxXQUFPSCxJQUFJLENBQUNOLEdBQUQsQ0FBWDtBQUNIO0FBQ0osQ0FkRDs7QUFnQkFqQixPQUFPLENBQUMyQixlQUFSLEdBQTBCLENBQUNOLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQzFDLE1BQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsTUFBckIsRUFBNkI7QUFDekIsV0FBT0QsSUFBSSxFQUFYO0FBQ0gsR0FGRCxNQUdLLElBQUlGLEdBQUcsQ0FBQ25CLElBQUosQ0FBU3NCLElBQVQsSUFBaUIsTUFBckIsRUFBNkI7QUFDOUJQLElBQUFBLEdBQUcsR0FBRyxJQUFJUSxLQUFKLENBQVUsbURBQVYsQ0FBTjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLE1BQUosR0FBYSxHQUFiO0FBQ0EsV0FBT0gsSUFBSSxDQUFDTixHQUFELENBQVg7QUFDSCxHQUpJLE1BS0E7QUFDREEsSUFBQUEsR0FBRyxHQUFHLElBQUlRLEtBQUosQ0FBVSxnQ0FBVixDQUFOO0FBQ0FSLElBQUFBLEdBQUcsQ0FBQ1MsTUFBSixHQUFhLEdBQWI7QUFDQSxXQUFPSCxJQUFJLENBQUNOLEdBQUQsQ0FBWDtBQUNIO0FBQ0osQ0FkRCIsInNvdXJjZXNDb250ZW50IjpbInZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBMb2NhbFN0cmF0ZWd5ID0gcmVxdWlyZSgncGFzc3BvcnQtbG9jYWwnKS5TdHJhdGVneTtcclxudmFyIFVzZXIgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciBKd3RTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLlN0cmF0ZWd5O1xyXG52YXIgRXh0cmFjdEp3dCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLkV4dHJhY3RKd3Q7XHJcbnZhciBqd3QgPSByZXF1aXJlKCdqc29ud2VidG9rZW4nKTtcclxuXHJcblxyXG5wYXNzcG9ydC51c2UobmV3IExvY2FsU3RyYXRlZ3koVXNlci5hdXRoZW50aWNhdGUoKSkpO1xyXG5wYXNzcG9ydC5zZXJpYWxpemVVc2VyKFVzZXIuc2VyaWFsaXplVXNlcigpKTtcclxucGFzc3BvcnQuZGVzZXJpYWxpemVVc2VyKFVzZXIuZGVzZXJpYWxpemVVc2VyKCkpO1xyXG5cclxuZXhwb3J0cy5nZXRUb2tlbiA9ICh1c2VyKSA9PiB7XHJcbiAgICByZXR1cm4gand0LnNpZ24odXNlciwgcHJvY2Vzcy5lbnYuc2VjcmV0S2V5LFxyXG4gICAgICAgIHsgZXhwaXJlc0luOiAzNjAwIH0pO1xyXG59O1xyXG5cclxudmFyIG9wdHMgPSB7fTtcclxub3B0cy5qd3RGcm9tUmVxdWVzdCA9IEV4dHJhY3RKd3QuZnJvbUF1dGhIZWFkZXJBc0JlYXJlclRva2VuKCk7XHJcbm9wdHMuc2VjcmV0T3JLZXkgPSBwcm9jZXNzLmVudi5zZWNyZXRLZXk7XHJcblxyXG5leHBvcnRzLmp3dFBhc3Nwb3J0ID0gcGFzc3BvcnQudXNlKG5ldyBKd3RTdHJhdGVneShvcHRzLFxyXG4gICAgKGp3dF9wYXlsb2FkLCBkb25lKSA9PiB7XHJcbiAgICAgICAgVXNlci5maW5kT25lKHsgX2lkOiBqd3RfcGF5bG9hZC5faWQgfSwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShlcnIsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCB1c2VyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkb25lKG51bGwsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSkpO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlVc2VyID0gcGFzc3BvcnQuYXV0aGVudGljYXRlKCdqd3QnLCB7IHNlc3Npb246IGZhbHNlIH0pO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ2FkbWluJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlICE9ICdhZG1pbicpIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ0FkbWluIFZlcmlmaWNhdGlvbiBGYWlsZWQhJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDUwMDtcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnZlcmlmeU1vZGVyYXRlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgIT0gJ3VzZXInKSB7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdNb2RlcmF0ZXIgVmVyaWZpY2F0aW9uIEZhaWxlZCEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNTAwO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuIl19\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Moderater Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/83/authenticate_83ba38785e68b531d6a7c8378dfee9c9.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2336\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8642,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8639,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1871,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4b/validation_4b7a8ff68e044daa8c6daa8312a761dc.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2369\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(newPasswordString, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, function (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating Password'\\n });\\n });\\n};\\n\\nconst logout = (req, res) => {\\n if (req.session) {\\n req.session.destroy();\\n res.clearCookie('session-id');\\n } else {\\n var err = new Error('You are not logged in!');\\n err.status = 403;\\n }\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.logout = logout;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsImZpbmRCeUlkIiwidGhlbiIsInNhbml0aXplZFVzZXIiLCJzZXRQYXNzd29yZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwibWVzc2FnZSIsImxvZ291dCIsInNlc3Npb24iLCJkZXN0cm95IiwiY2xlYXJDb29raWUiLCJFcnJvciIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBckI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBYjs7QUFFQSxJQUFJQyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxpQkFBRCxDQUFuQjs7QUFDQSxJQUFJSSxRQUFRLEdBQUdKLE9BQU8sQ0FBQyxVQUFELENBQXRCOztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUdBLE1BQU1NLFdBQVcsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUNwQyxNQUFJQyxLQUFLLEdBQUc7QUFDUkMsSUFBQUEsUUFBUSxFQUFFSixHQUFHLENBQUNLLElBQUos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LEdBQWlCLEdBQWpCO0FBQ0FiLElBQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLElBQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCa0IsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQWpCRDtBQWtCSCxDQXBCRDs7QUFzQkEsTUFBTUMsTUFBTSxHQUFHLENBQUNwQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUN6QixNQUFJRCxHQUFHLENBQUNxQyxPQUFSLEVBQWlCO0FBQ2JyQyxJQUFBQSxHQUFHLENBQUNxQyxPQUFKLENBQVlDLE9BQVo7QUFDQXJDLElBQUFBLEdBQUcsQ0FBQ3NDLFdBQUosQ0FBZ0IsWUFBaEI7QUFDSCxHQUhELE1BSUs7QUFDRCxRQUFJM0IsR0FBRyxHQUFHLElBQUk0QixLQUFKLENBQVUsd0JBQVYsQ0FBVjtBQUNBNUIsSUFBQUEsR0FBRyxDQUFDTSxNQUFKLEdBQWEsR0FBYjtBQUNIO0FBQ0osQ0FURDs7QUFXQXVCLE9BQU8sQ0FBQzFDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0EwQyxPQUFPLENBQUNyQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBcUIsT0FBTyxDQUFDTCxNQUFSLEdBQWlCQSxNQUFqQjtBQUNBSyxPQUFPLENBQUNmLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbnZhciByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxudmFyIFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG5cclxuXHJcbmNvbnN0IHNpZ251cEFkbWluID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgYWRtaW4gPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIGZpcnN0bmFtZTogcmVxLmJvZHkuZmlyc3RuYW1lLFxyXG4gICAgICAgIGxhc3RuYW1lOiByZXEuYm9keS5sYXN0bmFtZSxcclxuICAgICAgICBlbWFpbDogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgcm9sZTogJ2FkbWluJ1xyXG4gICAgfVxyXG4gICAgVXNlcnMucmVnaXN0ZXIobmV3IFVzZXJzKGFkbWluKSxcclxuICAgICAgICByZXEuYm9keS5wYXNzd29yZCwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gVW5zdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVxLmJvZHkuZmlyc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIuZmlyc3RuYW1lID0gcmVxLmJvZHkuZmlyc3RuYW1lO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5Lmxhc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIubGFzdG5hbWUgPSByZXEuYm9keS5sYXN0bmFtZTtcclxuICAgICAgICAgICAgICAgIHVzZXIuc2F2ZSgoZXJyLCB1c2VyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHN0YXR1czogJ1JlZ2lzdHJhdGlvbiBTdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dpbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgcGFzc3BvcnQuYXV0aGVudGljYXRlKCdsb2NhbCcsIChlcnIsIHVzZXIsIGluZm8pID0+IHtcclxuXHJcbiAgICAgICAgaWYgKCF1c2VyKSB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAxO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdMb2dpbiBVbnN1Y2Nlc3NmdWwhJywgZXJyOiBpbmZvIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXEubG9nSW4odXNlciwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB2YXIgdG9rZW4gPSBhdXRoZW50aWNhdGUuZ2V0VG9rZW4oeyBfaWQ6IHJlcS51c2VyLl9pZCwgcm9sZTogdXNlci5yb2xlIH0pO1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdMb2dpbiBTdWNjZXNzZnVsIScsIHRva2VuOiB0b2tlbiwgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KShyZXEsIHJlcywgbmV4dCk7XHJcbn1cclxuXHJcbmNvbnN0IGNoYW5nZVBhc3Nvd29yZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHVzZXJJZCA9IHJlcS5wYXJhbXMuaWQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKG5ld1Bhc3N3b3JkU3RyaW5nLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ3Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgZnVuY3Rpb24gKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIFBhc3N3b3JkJyB9KTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dvdXQgPSAocmVxLCByZXMpID0+IHtcclxuICAgIGlmIChyZXEuc2Vzc2lvbikge1xyXG4gICAgICAgIHJlcS5zZXNzaW9uLmRlc3Ryb3koKTtcclxuICAgICAgICByZXMuY2xlYXJDb29raWUoJ3Nlc3Npb24taWQnKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGxvZ2dlZCBpbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5sb2dvdXQgPSBsb2dvdXQ7XHJcbmV4cG9ydHMuY2hhbmdlUGFzc293b3JkID0gY2hhbmdlUGFzc293b3JkOyJdfQ==\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(newPasswordString, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, function (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating Password' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst logout = (req, res) => {\\r\\n if (req.session) {\\r\\n req.session.destroy();\\r\\n res.clearCookie('session-id');\\r\\n }\\r\\n else {\\r\\n var err = new Error('You are not logged in!');\\r\\n err.status = 403;\\r\\n }\\r\\n}\\r\\n\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.logout = logout;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1b/userController_1b7f9872a721ffd88b6634cf95f37bee.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2370\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13343,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13340,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":4}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":4}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2707,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"logout\",\"ranges\":[{\"startOffset\":2725,\"endOffset\":2913,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/cors_34beef0e65d7cfb3f2bb7a05fb9de802.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2371\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":6}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/3b/employeeRouter_3bb83cd3174a28ed34e0f44c133b9b42.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2372\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n throw err;\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n throw err;\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while deletting.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsImZpcnN0bmFtZSIsIiRyZWdleCIsIiRvcHRpb25zIiwic29ydGJ5Iiwic29ydEJ5Iiwic29ydCIsImFkZEVtcGxveWVlIiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJlbXBsb3llZSIsInVzZXJuYW1lIiwiZW1haWwiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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QUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFRixHQUFHLENBQUNFO0FBQS9CLEtBQVQ7QUFDSCxHQVhMO0FBWUgsQ0FiRDs7QUFlQTJCLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNLLHlCQUFSLEdBQW9DQSx5QkFBcEM7QUFDQUwsT0FBTyxDQUFDUyxtQkFBUixHQUE4QkEsbUJBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRW1wbG95ZWVzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMvdXRpbHMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBnZXQgZGV0YWlscyBvZiB0aGUgYXNzaXN0YW50c1xyXG4gKiBAcGFyYW0geyp9IHJlcSBcclxuICogQHBhcmFtIHsqfSByZXMgXHJcbiAqIEBwYXJhbSB7Kn0gbmV4dCBcclxuICogQHJldHVybnMge2FycmF5fSBsaXN0IG9mIGVtcGxveWVlc1xyXG4gKi9cclxuY29uc3QgZ2V0QWxsRW1wbG95ZWVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH07XHJcbiAgICBFbXBsb3llZXMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbEVtcGxveWVlc0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9O1xyXG4gICAgLy8gaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgLy8gICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgLy8gICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9XHJcbiAgICAvLyB9XHJcbiAgICBpZiAocmVxLmJvZHkuc2ltaWxhclRvKSB7XHJcbiAgICAgICAgdmFyIHNlYXJjaEJ5ID0gcmVxLmJvZHkuc2ltaWxhclRvIHx8IHt9XHJcbiAgICAgICAgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiLCBmaXJzdG5hbWU6IHsgJHJlZ2V4OiBgJHtzZWFyY2hCeX1gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgRW1wbG95ZWVzLmZpbmQocXVlcnkpLnNvcnQoc29ydGJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZ2V0dGluZyBkYXRhJyB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGVtcGxveWVlLnNhdmUoKGVyciwgZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtYWlsOiBlbXBsb3llZS5lbWFpbCwgcGFzc3dvcmQ6IHJhbmRvbVBhc3N3b3JkIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIEVtcGxveWVlcy5yZW1vdmUoeyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzID0gZ2V0QWxsRW1wbG95ZWVzO1xyXG5leHBvcnRzLmdldEFsbEVtcGxveWVlc0J5TmFtZSA9IGdldEFsbEVtcGxveWVlc0J5TmFtZTtcclxuZXhwb3J0cy5hZGRFbXBsb3llZSA9IGFkZEVtcGxveWVlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbEVtcGxveWVlcyA9IGRlbGV0ZUFsbEVtcGxveWVlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigoZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWU6IGVtcGxveWVlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGVtcGxveWVlID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdtb2RlcmF0ZXInXHJcbiAgICB9XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5lbXBsb3llZUlkLCB7XHJcbiAgICAgICAgJHNldDogZW1wbG95ZWVcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlOiBlbXBsb3llZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHVwZGF0aW5nLlwiKTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBRW1wbG95ZWVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIGRlbGV0dGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRFbXBsb3llZURldGFpbHNCeUlkID0gZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVFbXBsb3llZURldGFpbHNCeUlkID0gdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBRW1wbG95ZWVCeUlkID0gZGVsZXRlQUVtcGxveWVlQnlJZDsiXX0=\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while deletting.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4c/employeeController_4c102fe7873f734bd5117d404757cd9d.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2373\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22614,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22611,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":1053,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":1086,\"endOffset\":1976,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1999,\"endOffset\":2993,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3023,\"endOffset\":3260,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3709,\"endOffset\":3993,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4030,\"endOffset\":4740,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4771,\"endOffset\":5211,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const multer = require('multer');\\n\\nconst {\\n v4: uuidv4\\n} = require('uuid');\\n\\nlet path = require('path');\\n\\nconst storage = multer.diskStorage({\\n destination: function (req, file, cb) {\\n cb(null, 'images');\\n },\\n filename: function (req, file, cb) {\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\n }\\n});\\n\\nconst fileFilter = (req, file, cb) => {\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\n\\n if (allowedFileTypes.includes(file.mimetype)) {\\n cb(null, true);\\n } else {\\n cb(null, false);\\n }\\n};\\n\\nlet upload = multer({\\n storage,\\n fileFilter\\n});\\nexports.upload = upload;\\n\\nconst password_generator = len => {\\n var length = len ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbIm11bHRlciIsInJlcXVpcmUiLCJ2NCIsInV1aWR2NCIsInBhdGgiLCJzdG9yYWdlIiwiZGlza1N0b3JhZ2UiLCJkZXN0aW5hdGlvbiIsInJlcSIsImZpbGUiLCJjYiIsImZpbGVuYW1lIiwiRGF0ZSIsIm5vdyIsImV4dG5hbWUiLCJvcmlnaW5hbG5hbWUiLCJmaWxlRmlsdGVyIiwiYWxsb3dlZEZpbGVUeXBlcyIsImluY2x1ZGVzIiwibWltZXR5cGUiLCJ1cGxvYWQiLCJleHBvcnRzIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwibGVuIiwibGVuZ3RoIiwic3RyaW5nIiwibnVtZXJpYyIsInB1bmN0dWF0aW9uIiwicGFzc3dvcmQiLCJjaGFyYWN0ZXIiLCJjcnVuY2giLCJlbnRpdHkxIiwiTWF0aCIsImNlaWwiLCJyYW5kb20iLCJlbnRpdHkyIiwiZW50aXR5MyIsImhvbGQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNwbGl0Iiwic29ydCIsImpvaW4iLCJzdWJzdHIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxFQUFFLEVBQUVDO0FBQU4sSUFBaUJGLE9BQU8sQ0FBQyxNQUFELENBQTlCOztBQUNBLElBQUlHLElBQUksR0FBR0gsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBQ0EsTUFBTUksT0FBTyxHQUFHTCxNQUFNLENBQUNNLFdBQVAsQ0FBbUI7QUFDL0JDLEVBQUFBLFdBQVcsRUFBRSxVQUFVQyxHQUFWLEVBQWVDLElBQWYsRUFBcUJDLEVBQXJCLEVBQXlCO0FBQ2xDQSxJQUFBQSxFQUFFLENBQUMsSUFBRCxFQUFPLFFBQVAsQ0FBRjtBQUNILEdBSDhCO0FBSS9CQyxFQUFBQSxRQUFRLEVBQUUsVUFBVUgsR0FBVixFQUFlQyxJQUFmLEVBQXFCQyxFQUFyQixFQUF5QjtBQUMvQkEsSUFBQUEsRUFBRSxDQUFDLElBQUQs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LGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtdWx0ZXIgPSByZXF1aXJlKCdtdWx0ZXInKTtcclxuY29uc3QgeyB2NDogdXVpZHY0IH0gPSByZXF1aXJlKCd1dWlkJyk7XHJcbmxldCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xyXG5jb25zdCBzdG9yYWdlID0gbXVsdGVyLmRpc2tTdG9yYWdlKHtcclxuICAgIGRlc3RpbmF0aW9uOiBmdW5jdGlvbiAocmVxLCBmaWxlLCBjYikge1xyXG4gICAgICAgIGNiKG51bGwsICdpbWFnZXMnKTtcclxuICAgIH0sXHJcbiAgICBmaWxlbmFtZTogZnVuY3Rpb24gKHJlcSwgZmlsZSwgY2IpIHtcclxuICAgICAgICBjYihudWxsLCB1dWlkdjQoKSArICctJyArIERhdGUubm93KCkgKyBwYXRoLmV4dG5hbWUoZmlsZS5vcmlnaW5hbG5hbWUpKTtcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBmaWxlRmlsdGVyID0gKHJlcSwgZmlsZSwgY2IpID0+IHtcclxuICAgIGNvbnN0IGFsbG93ZWRGaWxlVHlwZXMgPSBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL3BuZyddO1xyXG4gICAgaWYgKGFsbG93ZWRGaWxlVHlwZXMuaW5jbHVkZXMoZmlsZS5taW1ldHlwZSkpIHtcclxuICAgICAgICBjYihudWxsLCB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2IobnVsbCwgZmFsc2UpO1xyXG4gICAgfVxyXG59XHJcblxyXG5sZXQgdXBsb2FkID0gbXVsdGVyKHsgc3RvcmFnZSwgZmlsZUZpbHRlciB9KTtcclxuXHJcbmV4cG9ydHMudXBsb2FkID0gdXBsb2FkO1xyXG5cclxuY29uc3QgcGFzc3dvcmRfZ2VuZXJhdG9yID0gKGxlbikgPT4ge1xyXG4gICAgdmFyIGxlbmd0aCA9IChsZW4pID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfH17W11cXDo7Pz48LC4vLT0nO1xyXG4gICAgdmFyIHBhc3N3b3JkID0gXCJcIjtcclxuICAgIHZhciBjaGFyYWN0ZXIgPSBcIlwiO1xyXG4gICAgdmFyIGNydW5jaCA9IHRydWU7XHJcbiAgICB3aGlsZSAocGFzc3dvcmQubGVuZ3RoIDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgZW50aXR5MSA9IE1hdGguY2VpbChzdHJpbmcubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTIgPSBNYXRoLmNlaWwobnVtZXJpYy5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgZW50aXR5MyA9IE1hdGguY2VpbChwdW5jdHVhdGlvbi5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgaG9sZCA9IHN0cmluZy5jaGFyQXQoZW50aXR5MSk7XHJcbiAgICAgICAgaG9sZCA9IChwYXNzd29yZC5sZW5ndGggJSAyID09IDApID8gKGhvbGQudG9VcHBlckNhc2UoKSkgOiAoaG9sZCk7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IGhvbGQ7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IG51bWVyaWMuY2hhckF0KGVudGl0eTIpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBwdW5jdHVhdGlvbi5jaGFyQXQoZW50aXR5Myk7XHJcbiAgICAgICAgcGFzc3dvcmQgPSBjaGFyYWN0ZXI7XHJcbiAgICB9XHJcbiAgICBwYXNzd29yZCA9IHBhc3N3b3JkLnNwbGl0KCcnKS5zb3J0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAuNSAtIE1hdGgucmFuZG9tKCkgfSkuam9pbignJyk7XHJcbiAgICByZXR1cm4gcGFzc3dvcmQuc3Vic3RyKDAsIGxlbmd0aCk7XHJcbn1cclxuXHJcbmV4cG9ydHMucGFzc3dvcmRfZ2VuZXJhdG9yID0gcGFzc3dvcmRfZ2VuZXJhdG9yOyJdfQ==\",\"originalCode\":\"const multer = require('multer');\\r\\nconst { v4: uuidv4 } = require('uuid');\\r\\nlet path = require('path');\\r\\nconst storage = multer.diskStorage({\\r\\n destination: function (req, file, cb) {\\r\\n cb(null, 'images');\\r\\n },\\r\\n filename: function (req, file, cb) {\\r\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\r\\n }\\r\\n});\\r\\n\\r\\nconst fileFilter = (req, file, cb) => {\\r\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\r\\n if (allowedFileTypes.includes(file.mimetype)) {\\r\\n cb(null, true);\\r\\n } else {\\r\\n cb(null, false);\\r\\n }\\r\\n}\\r\\n\\r\\nlet upload = multer({ storage, fileFilter });\\r\\n\\r\\nexports.upload = upload;\\r\\n\\r\\nconst password_generator = (len) => {\\r\\n var length = (len) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/f3/utils_f37ac8376b54b6ced952605900298d07.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2374\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":7861,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":7858,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"destination\",\"ranges\":[{\"startOffset\":248,\"endOffset\":302,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"filename\",\"ranges\":[{\"startOffset\":316,\"endOffset\":423,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"fileFilter\",\"ranges\":[{\"startOffset\":448,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":752,\"endOffset\":1636,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9d/placeRouter_9d9aca2c41f2c1b6283bdacdd67537b2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2415\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/ee/placeController_ee3a20e34d4d356553af723b6f7f6a6e.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2416\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwidmVyaWZ5TW9kZXJhdGVyIiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQXZCO0FBRUFELGNBQWMsQ0FBQ0UsR0FBZixDQUFtQlIsVUFBVSxDQUFDUyxJQUFYLEVBQW5CLEUsQ0FDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBSCxjQUFjLENBQUNJLEtBQWYsQ0FBcUIsR0FBckIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFOENaLGtCQUFrQixDQUFDYSxlQUZqRSxFQUdLQyxJQUhMLENBR1VsQixJQUFJLENBQUNXLGVBSGYsRUFHK0JULFlBQVksQ0FBQ2MsVUFINUMsRUFHeURaLGtCQUFrQixDQUFDZSxXQUg1RSxFQUlLQyxHQUpMLENBSVNwQixJQUFJLENBQUNXLGVBSmQsRUFJK0JULFlBQVksQ0FBQ2MsVUFKNUMsRUFJd0RkLFlBQVksQ0FBQ21CLGVBSnJFLEVBSXNGLENBQUNULEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQ2xHVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEsMkNBQVI7QUFDSCxDQVBMLEVBUUtDLE1BUkwsQ0FRWXpCLElBQUksQ0FBQ1csZUFSakIsRUFRa0NULFlBQVksQ0FBQ2MsVUFSL0MsRUFRMkRkLFlBQVksQ0FBQ3dCLFdBUnhFLEVBUXFGdEIsa0JBQWtCLENBQUN1QixrQkFSeEcsRSxDQVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixjQUFjLENBQUNJLEtBQWYsQ0FBcUIsY0FBckIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DVCxZQUFZLENBQUNjLFVBRGhELEVBQzRELENBQUNKLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEbEcsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFNkNaLGtCQUFrQixDQUFDd0Isc0JBRmhFLEVBR0tWLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQ1QsWUFBWSxDQUFDYyxVQUg3QyxFQUd5RGQsWUFBWSxDQUFDd0IsV0FIdEUsRUFHbUYsQ0FBQ2QsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDL0ZULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSxnREFBZ0RaLEdBQUcsQ0FBQ2lCLE1BQUosQ0FBV0MsVUFBbkU7QUFDSCxDQU5MLEVBT0tWLEdBUEwsQ0FPU3BCLElBQUksQ0FBQ1csZUFQZCxFQU8rQlQsWUFBWSxDQUFDYyxVQVA1QyxFQU93RGQsWUFBWSxDQUFDbUIsZUFQckUsRUFPc0ZqQixrQkFBa0IsQ0FBQzJCLGtCQVB6RyxFQVFLTixNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUN3QixXQVJ4RSxFQVFxRnRCLGtCQUFrQixDQUFDNEIsa0JBUnhHO0FBVUEzQixjQUFjLENBQUNJLEtBQWYsQ0FBcUIsZUFBckIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DVCxZQUFZLENBQUNjLFVBRGhELEVBQzRELENBQUNKLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEbEcsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFOENaLGtCQUFrQixDQUFDNkIsdUJBRmpFO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGNBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHNjaGVkdWxlQ29udHJvbGxlciA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3NjaGVkdWxlQ29udHJvbGxlcicpXHJcblxyXG5jb25zdCBzY2hlZHVsZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgUm91dGVzXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnLycpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeU1vZGVyYXRlciwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlQWxsU2NoZWR1bGVzKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBSb3V0ZXMgT24gSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvOnNjaGVkdWxlSWQnKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgc2NoZWR1bGVDb250cm9sbGVyLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvc2NoZWR1bGVzLycgKyByZXEucGFyYW1zLnNjaGVkdWxlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIudXBkYXRlU2NoZWR1bGVCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgc2NoZWR1bGVDb250cm9sbGVyLmRlbGV0ZVNjaGVkdWxlQnlJZCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnL3VzZXIvOnVzZXJJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAgc2NoZWR1bGVDb250cm9sbGVyLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gc2NoZWR1bGVSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9b/scheduleRouter_9b57edc7078385d142c957dea9d9e0be.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2417\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9621,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9618,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1085,\"endOffset\":1188,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1621,\"endOffset\":1661,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1824,\"endOffset\":1953,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2288,\"endOffset\":2328,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to add a schedule\\\"\\n });\\n });\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Update failed\\\"\\n });\\n });\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Delete failed\\\"\\n });\\n });\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwibXNnIiwiX21lc3NhZ2UiLCJhZGRTY2hlZHVsZSIsInNjaGVkdWxlIiwidXNlciIsImJvZHkiLCJwbGFjZSIsImRhdGUiLCJzdGF0ZSIsInRyYXZlbGxpbmdNZXRob2QiLCJjcmVhdGUiLCJkZWxldGVBbGxTY2hlZHVsZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInNjaGVkdWxlSWQiLCJ1cGRhdGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxxQkFBRCxDQUF6QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3hDTCxFQUFBQSxTQUFTLENBQUNNLElBQVYsQ0FBZUgsR0FBRyxDQUFDSSxLQUFuQixFQUEwQkMsUUFBMUIsQ0FBbUMsT0FBbkMsRUFBNENBLFFBQTVDLENBQXFELE1BQXJELEVBQ0tDLElBREwsQ0FDV0MsU0FBRCxJQUFlO0FBQ2pCTixJQUFBQSxHQUFHLENBQUNPLFVBQUosR0FBaUIs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Q1cwQixJQUFELElBQVU7QUFDWi9CLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQmdDLE1BQUFBLFFBQVEsRUFBQ1g7QUFBMUIsS0FBVDtBQUNILEdBTEwsRUFLUXBCLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTO0FBQ1pYLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQVZMO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gZ2V0IGRhdGFcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJ1c2VyXCI6IFN0cmluZyhyZXEucGFyYW1zLnVzZXJJZCkgfTtcclxuICAgIFNjaGVkdWxlcy5maW5kKHF1ZXJ5KS5wb3B1bGF0ZShcInBsYWNlXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+ICB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICBjb25zdCBtc2cgPSBlcnIuX21lc3NhZ2U7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IG1zZyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkZhaWxlZCB0byBnZXQgZGF0YVwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBhZGRTY2hlZHVsZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHNjaGVkdWxlID0ge1xyXG4gICAgICAgIHVzZXI6IHJlcS5ib2R5LnVzZXIsXHJcbiAgICAgICAgcGxhY2U6IHJlcS5ib2R5LnBsYWNlLFxyXG4gICAgICAgIGRhdGU6IHJlcS5ib2R5LmRhdGUsXHJcbiAgICAgICAgc3RhdGU6IFwibmV3XCIsXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZDogcmVxLmJvZHkudHJhdmVsbGluZ01ldGhvZFxyXG4gICAgfVxyXG4gICAgU2NoZWR1bGVzLmNyZWF0ZShzY2hlZHVsZSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6c2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgY29uc3QgbXNnID0gZXJyLl9tZXNzYWdlO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBtc2cgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gYWRkIGEgc2NoZWR1bGVcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzID0gZ2V0QWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmFkZFNjaGVkdWxlID0gYWRkU2NoZWR1bGU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsU2NoZWR1bGVzID0gZGVsZXRlQWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyID0gZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXI7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlOnNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBwbGFjZVwiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgU2NoZWR1bGVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuc2NoZWR1bGVJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTpzY2hlZHVsZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiVXBkYXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6cmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiRGVsZXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnRzLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSBnZXRTY2hlZHVsZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVNjaGVkdWxlQnlJZCA9IHVwZGF0ZVNjaGVkdWxlQnlJZDtcclxuZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5SWQgPSBkZWxldGVTY2hlZHVsZUJ5SWQ7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgVXNlcklEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vLyBjb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4vLyAgICAgU2NoZWR1bGVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuc2NoZWR1bGVJZClcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuLy8gICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4vLyAgICAgfSwgeyBuZXc6IHRydWUgfSlcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IGRlbGV0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4vLyAgICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuLy8gICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxuLy8gfSJdfQ==\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to add a schedule\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Update failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response:resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Delete failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1e/scheduleController_1ed35fc0c47927fadcf3cf43433b4df6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2542\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":846,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":881,\"endOffset\":1554,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1577,\"endOffset\":2348,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2378,\"endOffset\":2588,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":3041,\"endOffset\":3489,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3519,\"endOffset\":4012,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":4042,\"endOffset\":4480,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/e2/schedules_e2f8e79bc28961f4db3736c92d490e47.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2543\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0a/touristRouter_0ad938586662daadc81c6cb1ad2e0f53.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2545\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var error = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while deleting data'\\n });\\n });\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJtZXNzYWdlIiwiZ2V0QWxsVG91cmlzdHNCeU5hbWUiLCJib2R5Iiwic2ltaWxhclRvIiwic2VhcmNoQnkiLCIkdGV4dCIsIiRzZWFyY2giLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkVG91cmlzdCIsInJhbmRvbVBhc3N3b3JkIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwidG91cmlzdCIsInVzZXJuYW1lIiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsIm1vYmlsZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxUb3VyaXN0cyIsInJlbW92ZSIsInJlc3AiLCJyZXNwb25zZSIsImV4cG9ydHMiLCJnZXRUb3VyaXN0RGV0YWlsc0J5SWQiLCJ0b3VyaXN0SWQiLCJwYXJhbXMiLCJmaW5kQnlJZCIsInVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCIsImZpbmRCeUlkQW5kVXBkYXRlIiwiJHNldCIsIm5ldyIsImRlbGV0ZUFUb3VyaXN0QnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUUsY0FBYyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLE1BQUlDLEtB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O0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCK0IsTUFBQUEsUUFBUSxFQUFFRDtBQUEzQixLQUFUO0FBQ0gsR0FMTCxFQUtRN0IsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVM7QUFDWlYsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCRyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNILEdBVkw7QUFXSCxDQVpEOztBQWNBNkIsT0FBTyxDQUFDQyxxQkFBUixHQUFnQ0EscUJBQWhDO0FBQ0FELE9BQU8sQ0FBQ0ssd0JBQVIsR0FBbUNBLHdCQUFuQztBQUNBTCxPQUFPLENBQUNTLGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBUb3VyaXN0cyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG5jb25zdCB1dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzL3V0aWxzJyk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsVG91cmlzdHMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiIH07XHJcbiAgICAvLyB2YXIgb2JqID0gT2JqZWN0LmFzc2lnbihxdWVyeSwgeyAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH0pO1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgfVxyXG5cclxuICAgIHZhciBzb3J0YnkgPSByZXEuYm9keS5zb3J0QnkgfHwge307XHJcbiAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHRvdXJpc3RJZCA9IHJlcS5wYXJhbXMudG91cmlzdElkO1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWQodG91cmlzdElkKVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTsgXHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgXHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnRvdXJpc3RJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gIHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6ICdDb3VsZCBub3QgZmluZCB0b3VyaXN0IHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFUb3VyaXN0QnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy50b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZGVsZXRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcbiJdfQ==\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var error = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while deleting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9e/touristController_9ee6bfceb00c4d02fdcd8e12f129a687.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2546\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23082,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23079,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":954,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":986,\"endOffset\":1675,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1697,\"endOffset\":3064,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":3093,\"endOffset\":3369,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3808,\"endOffset\":4292,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":4328,\"endOffset\":4839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4869,\"endOffset\":5317,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/07/dashboardRouter_0791a49f2f45fc0f57ade98f27175c5c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2547\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/dashboardController_34872bbac017cfae6fcc33926d204118.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2548\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":8,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1614411968926,\"runtime\":1475,\"slow\":false,\"start\":1614411967451},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\places-id.test.js\",\"testResults\":[{\"ancestorTitles\":[\"GET /places/:visitingPlaceId\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /places/:visitingPlaceId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /places/:visitingPlaceId\"],\"duration\":21,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /places/:visitingPlaceId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"GET /places/:visitingPlaceId\"],\"duration\":13,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /places/:visitingPlaceId invalid place id - 404\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"invalid place id - 404\"},{\"ancestorTitles\":[\"POST /places/:visitingPlaceId\"],\"duration\":11,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /places/:visitingPlaceId does not support - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"does not support - 403\"},{\"ancestorTitles\":[\"PUT /places/:visitingPlaceId\"],\"duration\":8,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /places/:visitingPlaceId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"PUT /places/:visitingPlaceId\"],\"duration\":17,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /places/:visitingPlaceId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"DELETE /places/:visitingPlaceId\"],\"duration\":12,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /places/:visitingPlaceId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"DELETE /places/:visitingPlaceId\"],\"duration\":18,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /places/:visitingPlaceId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/01/app_010e21b7416079df77678cc6cb70a530.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nvar upload = require('../controllers/upload');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\", authenticate.verifyUser, upload.UploadUserImage);\\nuserRouter.get('/logout', authenticate.verifyUser, userController.logout);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsInVwbG9hZCIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwiVXBsb2FkVXNlckltYWdlIiwiZ2V0IiwibG9nb3V0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLElBQUlJLE1BQU0sR0FBR0osT0FBTyxDQUFDLHVCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUssRUFBQUE7QUFBRixJQUFrQkwsT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlNLFlBQVksR0FBR04sT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlPLGVBQWUsR0FBR1AsT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlRLGNBQWMsR0FBR1IsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1TLElBQUksR0FBR1QsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1MsR0FBWCxDQUFlUCxVQUFVLENBQUNRLElBQVgsRUFBZjtBQUVBVixVQUFVLENBQUNXLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZixVQUFVLENBQUNnQixJQUFYLENBQWdCLGVBQWhCLEVBQWlDUixJQUFJLENBQUNJLGVBQXRDLEVBQXVETCxjQUFjLENBQUNVLFdBQXRFO0FBRUFqQixVQUFVLENBQUNnQixJQUFYLENBQWdCLFFBQWhCLEVBQTBCUixJQUFJLENBQUNJLGVBQS9CLEVBQWdETCxjQUFjLENBQUNXLEtBQS9EO0FBRUFsQixVQUFVLENBQUNnQixJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBcEIsVUFBVSxDQUFDZ0IsSUFBWCxDQUFnQiwyQkFBaEIsRUFBNENYLFlBQVksQ0FBQ2MsVUFBekQsRUFBcUVoQixNQUFNLENBQUNrQixlQUE1RTtBQUVBckIsVUFBVSxDQUFDc0IsR0FBWCxDQUFlLFNBQWYsRUFBeUJqQixZQUFZLENBQUNjLFVBQXRDLEVBQWtEWixjQUFjLENBQUNnQixNQUFqRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJ6QixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxudmFyIHVwbG9hZCA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3VwbG9hZCcpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG52YXIgdXNlckNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy91c2VyQ29udHJvbGxlcicpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcblxyXG51c2VyUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG51c2VyUm91dGVyLm9wdGlvbnMoJyonLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcblxyXG51c2VyUm91dGVyLnBvc3QoJy9zaWdudXAvYWRtaW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIuc2lnbnVwQWRtaW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvbG9naW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIubG9naW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvY2hhbmdlcGFzc293b3JkLzppZCcsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVzZXJDb250cm9sbGVyLmNoYW5nZVBhc3Nvd29yZCk7XHJcblxyXG51c2VyUm91dGVyLnBvc3QoXCIvdXBkYXRlcHJvZmlsZXBpY3R1cmUvOmlkXCIsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVwbG9hZC5VcGxvYWRVc2VySW1hZ2UpO1xyXG5cclxudXNlclJvdXRlci5nZXQoJy9sb2dvdXQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5sb2dvdXQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nvar upload = require('../controllers/upload');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\",authenticate.verifyUser, upload.UploadUserImage);\\r\\n\\r\\nuserRouter.get('/logout',authenticate.verifyUser, userController.logout);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/a6/userRouter_a6221ff3be20743fe1c0fd1dc9fd8435.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4566,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4563,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":606,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const sharp = require('sharp');\\n\\nconst uid = require('uid');\\n\\nconst fs = require('fs');\\n\\nconst Users = require('../models/users');\\n\\nconst Places = require('../models/visitingPlaces');\\n\\nconst uploadFile = async (req, res) => {\\n try {\\n await upload(req, res);\\n\\n if (req.file == undefined) {\\n return res.send(`You must select a file.`);\\n }\\n\\n return res.send(`File has been uploaded.`);\\n } catch (error) {\\n return res.send(`Error when trying upload image: ${error}`);\\n }\\n};\\n\\nconst UploadUserImage = async (req, res, next) => {\\n try {\\n const user_id = req.params._id;\\n const user = await Users.findById(user_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/userImages/${imageUrl}`;\\n let previousImagePath = `images/userImages/${user.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'profile.png';\\n }\\n\\n user.image = imageUrl;\\n await user.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nconst uploadPlaceImage = async (req, res, next) => {\\n try {\\n const place_id = req.params._id;\\n const user = await Places.findById(place_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/placeImages/${imageUrl}`;\\n let previousImagePath = `images/placeImages/${place.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'image.png';\\n }\\n\\n place.image = imageUrl;\\n await place.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nexports.UploadUserImage = UploadUserImage;\\nexports.uploadFile = uploadFile;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVwbG9hZC5qcyJdLCJuYW1lcyI6WyJzaGFycCIsInJlcXVpcmUiLCJ1aWQiLCJmcyIsIlVzZXJzIiwiUGxhY2VzIiwidXBsb2FkRmlsZSIsInJlcSIsInJlcyIsInVwbG9hZCIsImZpbGUiLCJ1bmRlZmluZWQiLCJzZW5kIiwiZXJyb3IiLCJVcGxvYWRVc2VySW1hZ2UiLCJuZXh0IiwidXNlcl9pZCIsInBhcmFtcyIsIl9pZCIsInVzZXIiLCJmaW5kQnlJZCIsImltYWdlVXJsIiwib3JpZ2luYWxuYW1lIiwiZmlsZW5hbWUiLCJwcmV2aW91c0ltYWdlUGF0aCIsImltYWdlIiwiaW1hZ2VFeGlzdCIsImV4aXN0c1N5bmMiLCJkZWxldGVJbWFnZSIsInBhdGgiLCJyb3RhdGUiLCJyZXNpemUiLCJ0b0ZpbGUiLCJ1bmxpbmsiLCJlcnIiLCJzYXZlIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwibWVzc2FnZSIsInVwbG9hZFBsYWNlSW1hZ2UiLCJwbGFjZV9pZCIsInBsYWNlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsT0FBRCxDQUFyQjs7QUFDQSxNQUFNQyxHQUFHLEdBQUdELE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLElBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsS0FBSyxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBckI7O0FBQ0EsTUFBTUksTUFBTSxHQUFHSixPQUFPLENBQUMsMEJBQUQsQ0FBdEI7O0FBRUEsTUFBTUssVUFBVSxHQUFHLE9BQU9DLEdBQVAsRUFBWUMsR0FBWixLQUFvQjtBQUNuQyxNQUFJO0FBQ0EsVUFBTUMsTUFBTSxDQUFDRixHQUFELEVBQU1DLEdBQU4sQ0FBWjs7QUFFQSxRQUFJRCxHQUFHLENBQUNHLElBQUosSUFBWUMsU0FBaEIsRUFBMkI7QUFDdkIsYUFBT0gsR0FBRyxDQUFDSSxJQUFK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QUFkLEVBQThCLGtCQUE5QjtBQUNBN0IsSUFBQUEsR0FBRyxDQUFDOEIsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCQyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNIO0FBQ0osQ0F6Q0Q7O0FBMkNBSSxPQUFPLENBQUM5QixlQUFSLEdBQTBCQSxlQUExQjtBQUNBOEIsT0FBTyxDQUFDdEMsVUFBUixHQUFxQkEsVUFBckIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzaGFycCA9IHJlcXVpcmUoJ3NoYXJwJyk7XHJcbmNvbnN0IHVpZCA9IHJlcXVpcmUoJ3VpZCcpO1xyXG5jb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XHJcbmNvbnN0IFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFBsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpXHJcblxyXG5jb25zdCB1cGxvYWRGaWxlID0gYXN5bmMgKHJlcSwgcmVzKSA9PiB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHVwbG9hZChyZXEsIHJlcyk7XHJcblxyXG4gICAgICAgIGlmIChyZXEuZmlsZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBZb3UgbXVzdCBzZWxlY3QgYSBmaWxlLmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBGaWxlIGhhcyBiZWVuIHVwbG9hZGVkLmApO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICByZXR1cm4gcmVzLnNlbmQoYEVycm9yIHdoZW4gdHJ5aW5nIHVwbG9hZCBpbWFnZTogJHtlcnJvcn1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IFVwbG9hZFVzZXJJbWFnZSA9IGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBjb25zdCB1c2VyX2lkID0gcmVxLnBhcmFtcy5faWQ7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IGF3YWl0IFVzZXJzLmZpbmRCeUlkKHVzZXJfaWQpO1xyXG5cclxuICAgICAgICBsZXQgaW1hZ2VVcmw7XHJcbiAgICAgICAgaWYgKHJlcS5maWxlKSB7XHJcbiAgICAgICAgICAgIGltYWdlVXJsID0gYCR7dWlkKCl9X18ke3JlcS5maWxlLm9yaWdpbmFsbmFtZX1gO1xyXG4gICAgICAgICAgICBsZXQgZmlsZW5hbWUgPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHtpbWFnZVVybH1gO1xyXG4gICAgICAgICAgICBsZXQgcHJldmlvdXNJbWFnZVBhdGggPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHt1c2VyLmltYWdlfWA7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpbWFnZUV4aXN0ID0gZnMuZXhpc3RzU3luYyhwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIGlmIChpbWFnZUV4aXN0KSB7XHJcbiAgICAgICAgICAgICAgICBkZWxldGVJbWFnZShwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYXdhaXQgc2hhcnAocmVxLmZpbGUucGF0aClcclxuICAgICAgICAgICAgICAgIC5yb3RhdGUoKVxyXG4gICAgICAgICAgICAgICAgLnJlc2l6ZSg1MDAsIDUwMClcclxuICAgICAgICAgICAgICAgIC50b0ZpbGUoZmlsZW5hbWUpO1xyXG5cclxuICAgICAgICAgICAgZnMudW5saW5rKHJlcS5maWxlLnBhdGgsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9ICdwcm9maWxlLnBuZyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1c2VyLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgdXNlci5zYXZlKCk7XHJcblxyXG5cclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1N1Y2Nlc3NmdWxseSB1cGRhdGVkIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcblxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgdXBkYXRpbmcgcHJvZmlsZSBwaWN0dXJlJyB9KTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IHVwbG9hZFBsYWNlSW1hZ2UgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfaWQgPSByZXEucGFyYW1zLl9pZDtcclxuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgUGxhY2VzLmZpbmRCeUlkKHBsYWNlX2lkKTtcclxuXHJcbiAgICAgICAgbGV0IGltYWdlVXJsO1xyXG4gICAgICAgIGlmIChyZXEuZmlsZSkge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9IGAke3VpZCgpfV9fJHtyZXEuZmlsZS5vcmlnaW5hbG5hbWV9YDtcclxuICAgICAgICAgICAgbGV0IGZpbGVuYW1lID0gYGltYWdlcy9wbGFjZUltYWdlcy8ke2ltYWdlVXJsfWA7XHJcbiAgICAgICAgICAgIGxldCBwcmV2aW91c0ltYWdlUGF0aCA9IGBpbWFnZXMvcGxhY2VJbWFnZXMvJHtwbGFjZS5pbWFnZX1gO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaW1hZ2VFeGlzdCA9IGZzLmV4aXN0c1N5bmMocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICBpZiAoaW1hZ2VFeGlzdCkge1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlSW1hZ2UocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGF3YWl0IHNoYXJwKHJlcS5maWxlLnBhdGgpXHJcbiAgICAgICAgICAgICAgICAucm90YXRlKClcclxuICAgICAgICAgICAgICAgIC5yZXNpemUoNTAwLCA1MDApXHJcbiAgICAgICAgICAgICAgICAudG9GaWxlKGZpbGVuYW1lKTtcclxuXHJcbiAgICAgICAgICAgIGZzLnVubGluayhyZXEuZmlsZS5wYXRoLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaW1hZ2VVcmwgPSAnaW1hZ2UucG5nJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBsYWNlLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgcGxhY2Uuc2F2ZSgpO1xyXG5cclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6ICdTdWNjZXNzZnVsbHkgdXBkYXRlZCBwcm9maWxlIHBpY3R1cmUnIH0pO1xyXG5cclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnRzLlVwbG9hZFVzZXJJbWFnZSA9IFVwbG9hZFVzZXJJbWFnZTtcclxuZXhwb3J0cy51cGxvYWRGaWxlID0gdXBsb2FkRmlsZTsiXX0=\",\"originalCode\":\"const sharp = require('sharp');\\r\\nconst uid = require('uid');\\r\\nconst fs = require('fs');\\r\\nconst Users = require('../models/users');\\r\\nconst Places = require('../models/visitingPlaces')\\r\\n\\r\\nconst uploadFile = async (req, res) => {\\r\\n try {\\r\\n await upload(req, res);\\r\\n\\r\\n if (req.file == undefined) {\\r\\n return res.send(`You must select a file.`);\\r\\n }\\r\\n\\r\\n return res.send(`File has been uploaded.`);\\r\\n } catch (error) {\\r\\n return res.send(`Error when trying upload image: ${error}`);\\r\\n }\\r\\n};\\r\\n\\r\\nconst UploadUserImage = async (req, res, next) => {\\r\\n try {\\r\\n const user_id = req.params._id;\\r\\n const user = await Users.findById(user_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/userImages/${imageUrl}`;\\r\\n let previousImagePath = `images/userImages/${user.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'profile.png';\\r\\n }\\r\\n\\r\\n user.image = imageUrl;\\r\\n await user.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nconst uploadPlaceImage = async (req, res, next) => {\\r\\n try {\\r\\n const place_id = req.params._id;\\r\\n const user = await Places.findById(place_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/placeImages/${imageUrl}`;\\r\\n let previousImagePath = `images/placeImages/${place.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'image.png';\\r\\n }\\r\\n\\r\\n place.image = imageUrl;\\r\\n await place.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nexports.UploadUserImage = UploadUserImage;\\r\\nexports.uploadFile = uploadFile;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/70/upload_70c590d2bd713c9562e3916387ba4116.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\upload.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":12791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":12788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"uploadFile\",\"ranges\":[{\"startOffset\":293,\"endOffset\":580,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"UploadUserImage\",\"ranges\":[{\"startOffset\":607,\"endOffset\":1704,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"uploadPlaceImage\",\"ranges\":[{\"startOffset\":1732,\"endOffset\":2835,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fa/users_fa250a82bd410ffb1909f920e93eed19.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2324\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c4/visitingPlaces_c4ccc91c117df8c4aeada72a82534688.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2335\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Moderater Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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RyxHQUFHLElBQUlRLEtBQUosQ0FBVSxnQ0FBVixDQUFOO0FBQ0FSLElBQUFBLEdBQUcsQ0FBQ1MsTUFBSixHQUFhLEdBQWI7QUFDQSxXQUFPSCxJQUFJLENBQUNOLEdBQUQsQ0FBWDtBQUNIO0FBQ0osQ0FkRCIsInNvdXJjZXNDb250ZW50IjpbInZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBMb2NhbFN0cmF0ZWd5ID0gcmVxdWlyZSgncGFzc3BvcnQtbG9jYWwnKS5TdHJhdGVneTtcclxudmFyIFVzZXIgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciBKd3RTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLlN0cmF0ZWd5O1xyXG52YXIgRXh0cmFjdEp3dCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLkV4dHJhY3RKd3Q7XHJcbnZhciBqd3QgPSByZXF1aXJlKCdqc29ud2VidG9rZW4nKTtcclxuXHJcblxyXG5wYXNzcG9ydC51c2UobmV3IExvY2FsU3RyYXRlZ3koVXNlci5hdXRoZW50aWNhdGUoKSkpO1xyXG5wYXNzcG9ydC5zZXJpYWxpemVVc2VyKFVzZXIuc2VyaWFsaXplVXNlcigpKTtcclxucGFzc3BvcnQuZGVzZXJpYWxpemVVc2VyKFVzZXIuZGVzZXJpYWxpemVVc2VyKCkpO1xyXG5cclxuZXhwb3J0cy5nZXRUb2tlbiA9ICh1c2VyKSA9PiB7XHJcbiAgICByZXR1cm4gand0LnNpZ24odXNlciwgcHJvY2Vzcy5lbnYuc2VjcmV0S2V5LFxyXG4gICAgICAgIHsgZXhwaXJlc0luOiAzNjAwIH0pO1xyXG59O1xyXG5cclxudmFyIG9wdHMgPSB7fTtcclxub3B0cy5qd3RGcm9tUmVxdWVzdCA9IEV4dHJhY3RKd3QuZnJvbUF1dGhIZWFkZXJBc0JlYXJlclRva2VuKCk7XHJcbm9wdHMuc2VjcmV0T3JLZXkgPSBwcm9jZXNzLmVudi5zZWNyZXRLZXk7XHJcblxyXG5leHBvcnRzLmp3dFBhc3Nwb3J0ID0gcGFzc3BvcnQudXNlKG5ldyBKd3RTdHJhdGVneShvcHRzLFxyXG4gICAgKGp3dF9wYXlsb2FkLCBkb25lKSA9PiB7XHJcbiAgICAgICAgVXNlci5maW5kT25lKHsgX2lkOiBqd3RfcGF5bG9hZC5faWQgfSwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShlcnIsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCB1c2VyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkb25lKG51bGwsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSkpO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlVc2VyID0gcGFzc3BvcnQuYXV0aGVudGljYXRlKCdqd3QnLCB7IHNlc3Npb246IGZhbHNlIH0pO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ2FkbWluJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlICE9ICdhZG1pbicpIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ0FkbWluIFZlcmlmaWNhdGlvbiBGYWlsZWQhJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDUwMDtcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnZlcmlmeU1vZGVyYXRlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgIT0gJ3VzZXInKSB7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdNb2RlcmF0ZXIgVmVyaWZpY2F0aW9uIEZhaWxlZCEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNTAwO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuIl19\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Moderater Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/83/authenticate_83ba38785e68b531d6a7c8378dfee9c9.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2336\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8642,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8639,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":4}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":4}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1871,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4b/validation_4b7a8ff68e044daa8c6daa8312a761dc.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2369\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(newPasswordString, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, function (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating Password'\\n });\\n });\\n};\\n\\nconst logout = (req, res) => {\\n if (req.session) {\\n req.session.destroy();\\n res.clearCookie('session-id');\\n } else {\\n var err = new Error('You are not logged in!');\\n err.status = 403;\\n }\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.logout = logout;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsImZpbmRCeUlkIiwidGhlbiIsInNhbml0aXplZFVzZXIiLCJzZXRQYXNzd29yZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwibWVzc2FnZSIsImxvZ291dCIsInNlc3Npb24iLCJkZXN0cm95IiwiY2xlYXJDb29raWUiLCJFcnJvciIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBckI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBYjs7QUFFQSxJQUFJQyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxpQkFBRCxDQUFuQjs7QUFDQSxJQUFJSSxRQUFRLEdBQUdKLE9BQU8sQ0FBQyxVQUFELENBQXRCOztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUdBLE1BQU1NLFdBQVcsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUNwQyxNQUFJQyxLQUFLLEdBQUc7QUFDUkMsSUFBQUEsUUFBUSxFQUFFSixHQUFHLENBQUNLLElBQUosQ0FBU0MsS0FEWDtBQUVSQyxJQUFBQSxTQUFTLEVBQUVQLEdBQUcsQ0FBQ0ssSUFBSixDQUFTRSxTQUZaO0FBR1JDLElBQUFBLFFBQVEsRUFBRVIsR0FBRyxDQUFDSyxJQUFKLENBQVNHLFFBSFg7QUFJUkYsSUFBQUEsS0FBSyxFQUFFTixHQUFHLENBQUNLLElBQUosQ0FBU0MsS0FKUjtBQUtSRyxJQUFBQSxJQUFJLEVBQUU7QUFMRSxHQUFaO0FBT0FiLEVBQUFBLEtBQUssQ0FBQ2MsUUFBTixDQUFlLElBQUlkLEtBQUosQ0FBVU8sS0FBVixDQUFmLEVBQ0lILEdBQUcsQ0FBQ0ssSUFBSixDQUFTTSxRQURiLEVBQ3VCLENBQUNDLEdBQUQsRUFBTUMsSUFBTixLQUFlO0FBQzlCLFFBQUlELEdBQUosRUFBUztBQUNMWCxNQUFBQSxHQUFHLENBQUNhLFVBQUosR0FBaUIsR0FBakI7QUFDQWIsTUFBQUEsR0FBRyxDQUFDYyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQWQsTUFBQUEsR0FBRyxDQUFDZSxJQUFKLENBQVM7QUFBRUMsUUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JDLFFBQUFBLE1BQU0sRUFBRTtBQUExQixPQUFUO0FBQ0gsS0FKRCxNQUtLO0FBQ0QsVUFBSWxCLEdBQUcsQ0FBQ0ssSUFBSixDQUFTRSxTQUFiLEVBQ0lNLElBQUksQ0FBQ04sU0FBTCxHQUFpQlAsR0FBRyxDQUFDSyxJQUFKLENBQVNFLFNBQTFCO0FBQ0osVUFBSVAsR0FBRyxDQUFDSyxJQUFKLENBQVNHLFFBQWIsRUFDSUssSUFBSSxDQUFDTCxRQUFMLEdBQWdCUixHQUFHLENBQUNLLElBQUosQ0FBU0csUUFBekI7QUFDSkssTUFBQUEsSUFBSSxDQUFDTSxJQUFMLENBQVUsQ0FBQ1AsR0FBRCxFQUFNQyxJQUFOLEtBQWU7QUFDckJaLFFBQUFBLEdBQUcsQ0FBQ2EsVUFBSixHQUFpQixHQUFqQjtBQUNBYixRQUFBQSxHQUFHLENBQUNjLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBZCxRQUFBQSxHQUFHLENBQUNlLElBQUosQ0FBUztBQUFFQyxVQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQkMsVUFBQUEsTUFBTSxFQUFFO0FBQXpCLFNBQVQ7QUFDSCxPQUpEO0FBS0g7QUFDSixHQWxCTDtBQW1CSCxDQTNCRDs7QUE2QkEsTUFBTUUsS0FBSyxHQUFHLENBQUNwQixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUM5QkwsRUFBQUEsUUFBUSxDQUFDQyxZQUFULENBQXNCLE9BQXRCLEVBQStCLENBQUNjLEdBQUQsRUFBTUMsSUFBTixFQUFZUSxJQUFaLEtBQXFCO0FBRWhELFFBQUksQ0FBQ1IsSUFBTCxFQUFXO0FBQ1BaLE1BQUFBLEdBQUcsQ0FBQ2EsVUFBSixHQUFpQixHQUFqQjtBQUNBYixNQUFBQSxHQUFHLENBQUNjLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBZCxNQUFBQSxHQUFHLENBQUNlLElBQUosQ0FBUztBQUFFQyxRQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkMsUUFBQUEsTUFBTSxFQUFFLHFCQUExQjtBQUFpRE4sUUFBQUEsR0FBRyxFQUFFUztBQUF0RCxPQUFUO0FBQ0EsYUFBT25CLElBQUksQ0FBQ1UsR0FBRCxDQUFYO0FBQ0g7O0FBQ0RaLElBQUFBLEdBQUcsQ0FBQ3NCLEtBQUosQ0FBVVQsSUFBVixFQUFpQkQsR0FBRCxJQUFTO0FBQ3JCLFVBQUlXLEtBQUssR0FBR3pCLFlBQVksQ0FBQzBCLFFBQWIsQ0FBc0I7QUFBRUMsUUFBQUEsR0FBRyxFQUFFekIsR0FBRyxDQUFDYSxJQUFKLENBQVNZLEdBQWhCO0FBQXFCaEIsUUFBQUEsSUFBSSxFQUFFSSxJQUFJLENBQUNKO0FBQWhDLE9BQXRCLENBQVo7QUFDQVIsTUFBQUEsR0FBRyxDQUFDYSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FiLE1BQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLE1BQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLFFBQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCQyxRQUFBQSxNQUFNLEVBQUUsbUJBQXpCO0FBQThDSyxRQUFBQSxLQUFLLEVBQUVBO0FBQXJELE9BQVQ7QUFDSCxLQUxEO0FBTUgsR0FkRCxFQWNHdkIsR0FkSCxFQWNRQyxHQWRSLEVBY2FDLElBZGI7QUFlSCxDQWhCRDs7QUFrQkEsTUFBTXdCLGVBQWUsR0FBRyxDQUFDMUIsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDeEMsTUFBSXlCLE1BQU0sR0FBRzNCLEdBQUcsQ0FBQzRCLE1BQUosQ0FBV0MsRUFBeEI7QUFDQWpDLEVBQUFBLEtBQUssQ0FBQ2tDLFFBQU4sQ0FBZUgsTUFBZixFQUF1QkksSUFBdkIsQ0FBNEIsVUFBVUMsYUFBVixFQUF5QjtBQUNqRCxRQUFJQSxhQUFKLEVBQW1CO0FBQ2ZBLE1BQUFBLGFBQWEsQ0FBQ0MsV0FBZCxDQUEwQkMsaUJBQTFCLEVBQTZDLFlBQVk7QUFDckRGLFFBQUFBLGFBQWEsQ0FBQ2IsSUFBZDtBQUNBbEIsUUFBQUEsR0FBRyxDQUFDYSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FiLFFBQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLFFBQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLFVBQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCa0IsVUFBQUEsT0FBTyxFQUFFO0FBQTFCLFNBQVQ7QUFDSCxPQUxEO0FBTUgsS0FQRCxNQU9PO0FBQ0hsQyxNQUFBQSxHQUFHLENBQUNhLFVBQUosR0FBaUIsR0FBakI7QUFDQWIsTUFBQUEsR0FBRyxDQUFDYyxTQUFKLENBQWMsY0FBZCxFQUE4QixrQkFBOUI7QUFDQWQsTUFBQUEsR0FBRyxDQUFDZSxJQUFKLENBQVM7QUFBRUMsUUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JrQixRQUFBQSxPQUFPLEVBQUU7QUFBM0IsT0FBVDtBQUNIO0FBQ0osR0FiRCxFQWFHLFVBQVV2QixHQUFWLEVBQWU7QUFDZFgsSUFBQUEsR0FBRyxDQUFDYSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FiLElBQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLElBQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCa0IsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQWpCRDtBQWtCSCxDQXBCRDs7QUFzQkEsTUFBTUMsTUFBTSxHQUFHLENBQUNwQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUN6QixNQUFJRCxHQUFHLENBQUNxQyxPQUFSLEVBQWlCO0FBQ2JyQyxJQUFBQSxHQUFHLENBQUNxQyxPQUFKLENBQVlDLE9BQVo7QUFDQXJDLElBQUFBLEdBQUcsQ0FBQ3NDLFdBQUosQ0FBZ0IsWUFBaEI7QUFDSCxHQUhELE1BSUs7QUFDRCxRQUFJM0IsR0FBRyxHQUFHLElBQUk0QixLQUFKLENBQVUsd0JBQVYsQ0FBVjtBQUNBNUIsSUFBQUEsR0FBRyxDQUFDTSxNQUFKLEdBQWEsR0FBYjtBQUNIO0FBQ0osQ0FURDs7QUFXQXVCLE9BQU8sQ0FBQzFDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0EwQyxPQUFPLENBQUNyQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBcUIsT0FBTyxDQUFDTCxNQUFSLEdBQWlCQSxNQUFqQjtBQUNBSyxPQUFPLENBQUNmLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbnZhciByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxudmFyIFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG5cclxuXHJcbmNvbnN0IHNpZ251cEFkbWluID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgYWRtaW4gPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIGZpcnN0bmFtZTogcmVxLmJvZHkuZmlyc3RuYW1lLFxyXG4gICAgICAgIGxhc3RuYW1lOiByZXEuYm9keS5sYXN0bmFtZSxcclxuICAgICAgICBlbWFpbDogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgcm9sZTogJ2FkbWluJ1xyXG4gICAgfVxyXG4gICAgVXNlcnMucmVnaXN0ZXIobmV3IFVzZXJzKGFkbWluKSxcclxuICAgICAgICByZXEuYm9keS5wYXNzd29yZCwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gVW5zdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVxLmJvZHkuZmlyc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIuZmlyc3RuYW1lID0gcmVxLmJvZHkuZmlyc3RuYW1lO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5Lmxhc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIubGFzdG5hbWUgPSByZXEuYm9keS5sYXN0bmFtZTtcclxuICAgICAgICAgICAgICAgIHVzZXIuc2F2ZSgoZXJyLCB1c2VyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHN0YXR1czogJ1JlZ2lzdHJhdGlvbiBTdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dpbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgcGFzc3BvcnQuYXV0aGVudGljYXRlKCdsb2NhbCcsIChlcnIsIHVzZXIsIGluZm8pID0+IHtcclxuXHJcbiAgICAgICAgaWYgKCF1c2VyKSB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAxO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdMb2dpbiBVbnN1Y2Nlc3NmdWwhJywgZXJyOiBpbmZvIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXEubG9nSW4odXNlciwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB2YXIgdG9rZW4gPSBhdXRoZW50aWNhdGUuZ2V0VG9rZW4oeyBfaWQ6IHJlcS51c2VyLl9pZCwgcm9sZTogdXNlci5yb2xlIH0pO1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdMb2dpbiBTdWNjZXNzZnVsIScsIHRva2VuOiB0b2tlbiwgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KShyZXEsIHJlcywgbmV4dCk7XHJcbn1cclxuXHJcbmNvbnN0IGNoYW5nZVBhc3Nvd29yZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHVzZXJJZCA9IHJlcS5wYXJhbXMuaWQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKG5ld1Bhc3N3b3JkU3RyaW5nLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ3Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgZnVuY3Rpb24gKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIFBhc3N3b3JkJyB9KTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dvdXQgPSAocmVxLCByZXMpID0+IHtcclxuICAgIGlmIChyZXEuc2Vzc2lvbikge1xyXG4gICAgICAgIHJlcS5zZXNzaW9uLmRlc3Ryb3koKTtcclxuICAgICAgICByZXMuY2xlYXJDb29raWUoJ3Nlc3Npb24taWQnKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGxvZ2dlZCBpbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5sb2dvdXQgPSBsb2dvdXQ7XHJcbmV4cG9ydHMuY2hhbmdlUGFzc293b3JkID0gY2hhbmdlUGFzc293b3JkOyJdfQ==\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(newPasswordString, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, function (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating Password' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst logout = (req, res) => {\\r\\n if (req.session) {\\r\\n req.session.destroy();\\r\\n res.clearCookie('session-id');\\r\\n }\\r\\n else {\\r\\n var err = new Error('You are not logged in!');\\r\\n err.status = 403;\\r\\n }\\r\\n}\\r\\n\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.logout = logout;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1b/userController_1b7f9872a721ffd88b6634cf95f37bee.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2370\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13343,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13340,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2707,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"logout\",\"ranges\":[{\"startOffset\":2725,\"endOffset\":2913,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/cors_34beef0e65d7cfb3f2bb7a05fb9de802.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2371\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":7}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/3b/employeeRouter_3bb83cd3174a28ed34e0f44c133b9b42.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2372\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n throw err;\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n throw err;\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while deletting.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsImZpcnN0bmFtZSIsIiRyZWdleCIsIiRvcHRpb25zIiwic29ydGJ5Iiwic29ydEJ5Iiwic29ydCIsImFkZEVtcGxveWVlIiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJlbXBsb3llZSIsInVzZXJuYW1lIiwiZW1haWwiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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QUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFRixHQUFHLENBQUNFO0FBQS9CLEtBQVQ7QUFDSCxHQVhMO0FBWUgsQ0FiRDs7QUFlQTJCLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNLLHlCQUFSLEdBQW9DQSx5QkFBcEM7QUFDQUwsT0FBTyxDQUFDUyxtQkFBUixHQUE4QkEsbUJBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRW1wbG95ZWVzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMvdXRpbHMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBnZXQgZGV0YWlscyBvZiB0aGUgYXNzaXN0YW50c1xyXG4gKiBAcGFyYW0geyp9IHJlcSBcclxuICogQHBhcmFtIHsqfSByZXMgXHJcbiAqIEBwYXJhbSB7Kn0gbmV4dCBcclxuICogQHJldHVybnMge2FycmF5fSBsaXN0IG9mIGVtcGxveWVlc1xyXG4gKi9cclxuY29uc3QgZ2V0QWxsRW1wbG95ZWVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH07XHJcbiAgICBFbXBsb3llZXMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbEVtcGxveWVlc0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9O1xyXG4gICAgLy8gaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgLy8gICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgLy8gICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9XHJcbiAgICAvLyB9XHJcbiAgICBpZiAocmVxLmJvZHkuc2ltaWxhclRvKSB7XHJcbiAgICAgICAgdmFyIHNlYXJjaEJ5ID0gcmVxLmJvZHkuc2ltaWxhclRvIHx8IHt9XHJcbiAgICAgICAgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiLCBmaXJzdG5hbWU6IHsgJHJlZ2V4OiBgJHtzZWFyY2hCeX1gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgRW1wbG95ZWVzLmZpbmQocXVlcnkpLnNvcnQoc29ydGJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZ2V0dGluZyBkYXRhJyB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGVtcGxveWVlLnNhdmUoKGVyciwgZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtYWlsOiBlbXBsb3llZS5lbWFpbCwgcGFzc3dvcmQ6IHJhbmRvbVBhc3N3b3JkIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIEVtcGxveWVlcy5yZW1vdmUoeyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzID0gZ2V0QWxsRW1wbG95ZWVzO1xyXG5leHBvcnRzLmdldEFsbEVtcGxveWVlc0J5TmFtZSA9IGdldEFsbEVtcGxveWVlc0J5TmFtZTtcclxuZXhwb3J0cy5hZGRFbXBsb3llZSA9IGFkZEVtcGxveWVlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbEVtcGxveWVlcyA9IGRlbGV0ZUFsbEVtcGxveWVlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigoZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWU6IGVtcGxveWVlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGVtcGxveWVlID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdtb2RlcmF0ZXInXHJcbiAgICB9XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5lbXBsb3llZUlkLCB7XHJcbiAgICAgICAgJHNldDogZW1wbG95ZWVcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlOiBlbXBsb3llZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHVwZGF0aW5nLlwiKTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBRW1wbG95ZWVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIGRlbGV0dGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRFbXBsb3llZURldGFpbHNCeUlkID0gZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVFbXBsb3llZURldGFpbHNCeUlkID0gdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBRW1wbG95ZWVCeUlkID0gZGVsZXRlQUVtcGxveWVlQnlJZDsiXX0=\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while deletting.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4c/employeeController_4c102fe7873f734bd5117d404757cd9d.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2373\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22614,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22611,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":1053,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":1086,\"endOffset\":1976,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1999,\"endOffset\":2993,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3023,\"endOffset\":3260,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3709,\"endOffset\":3993,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4030,\"endOffset\":4740,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4771,\"endOffset\":5211,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const multer = require('multer');\\n\\nconst {\\n v4: uuidv4\\n} = require('uuid');\\n\\nlet path = require('path');\\n\\nconst storage = multer.diskStorage({\\n destination: function (req, file, cb) {\\n cb(null, 'images');\\n },\\n filename: function (req, file, cb) {\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\n }\\n});\\n\\nconst fileFilter = (req, file, cb) => {\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\n\\n if (allowedFileTypes.includes(file.mimetype)) {\\n cb(null, true);\\n } else {\\n cb(null, false);\\n }\\n};\\n\\nlet upload = multer({\\n storage,\\n fileFilter\\n});\\nexports.upload = upload;\\n\\nconst password_generator = len => {\\n var length = len ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbIm11bHRlciIsInJlcXVpcmUiLCJ2NCIsInV1aWR2NCIsInBhdGgiLCJzdG9yYWdlIiwiZGlza1N0b3JhZ2UiLCJkZXN0aW5hdGlvbiIsInJlcSIsImZpbGUiLCJjYiIsImZpbGVuYW1lIiwiRGF0ZSIsIm5vdyIsImV4dG5hbWUiLCJvcmlnaW5hbG5hbWUiLCJmaWxlRmlsdGVyIiwiYWxsb3dlZEZpbGVUeXBlcyIsImluY2x1ZGVzIiwibWltZXR5cGUiLCJ1cGxvYWQiLCJleHBvcnRzIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwibGVuIiwibGVuZ3RoIiwic3RyaW5nIiwibnVtZXJpYyIsInB1bmN0dWF0aW9uIiwicGFzc3dvcmQiLCJjaGFyYWN0ZXIiLCJjcnVuY2giLCJlbnRpdHkxIiwiTWF0aCIsImNlaWwiLCJyYW5kb20iLCJlbnRpdHkyIiwiZW50aXR5MyIsImhvbGQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNwbGl0Iiwic29ydCIsImpvaW4iLCJzdWJzdHIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxFQUFFLEVBQUVDO0FBQU4sSUFBaUJGLE9BQU8sQ0FBQyxNQUFELENBQTlCOztBQUNBLElBQUlHLElBQUksR0FBR0gsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBQ0EsTUFBTUksT0FBTyxHQUFHTCxNQUFNLENBQUNNLFdBQVAsQ0FBbUI7QUFDL0JDLEVBQUFBLFdBQVcsRUFBRSxVQUFVQyxHQUFWLEVBQWVDLElBQWYsRUFBcUJDLEVBQXJCLEVBQXlCO0FBQ2xDQSxJQUFBQSxFQUFFLENBQUMsSUFBRCxFQUFPLFFBQVAsQ0FBRjtBQUNILEdBSDhCO0FBSS9CQyxFQUFBQSxRQUFRLEVBQUUsVUFBVUgsR0FBVixFQUFlQyxJQUFmLEVBQXFCQyxFQUFyQixFQUF5QjtBQUMvQkEsSUFBQUEsRUFBRSxDQUFDLElBQUQs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LGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtdWx0ZXIgPSByZXF1aXJlKCdtdWx0ZXInKTtcclxuY29uc3QgeyB2NDogdXVpZHY0IH0gPSByZXF1aXJlKCd1dWlkJyk7XHJcbmxldCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xyXG5jb25zdCBzdG9yYWdlID0gbXVsdGVyLmRpc2tTdG9yYWdlKHtcclxuICAgIGRlc3RpbmF0aW9uOiBmdW5jdGlvbiAocmVxLCBmaWxlLCBjYikge1xyXG4gICAgICAgIGNiKG51bGwsICdpbWFnZXMnKTtcclxuICAgIH0sXHJcbiAgICBmaWxlbmFtZTogZnVuY3Rpb24gKHJlcSwgZmlsZSwgY2IpIHtcclxuICAgICAgICBjYihudWxsLCB1dWlkdjQoKSArICctJyArIERhdGUubm93KCkgKyBwYXRoLmV4dG5hbWUoZmlsZS5vcmlnaW5hbG5hbWUpKTtcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBmaWxlRmlsdGVyID0gKHJlcSwgZmlsZSwgY2IpID0+IHtcclxuICAgIGNvbnN0IGFsbG93ZWRGaWxlVHlwZXMgPSBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL3BuZyddO1xyXG4gICAgaWYgKGFsbG93ZWRGaWxlVHlwZXMuaW5jbHVkZXMoZmlsZS5taW1ldHlwZSkpIHtcclxuICAgICAgICBjYihudWxsLCB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2IobnVsbCwgZmFsc2UpO1xyXG4gICAgfVxyXG59XHJcblxyXG5sZXQgdXBsb2FkID0gbXVsdGVyKHsgc3RvcmFnZSwgZmlsZUZpbHRlciB9KTtcclxuXHJcbmV4cG9ydHMudXBsb2FkID0gdXBsb2FkO1xyXG5cclxuY29uc3QgcGFzc3dvcmRfZ2VuZXJhdG9yID0gKGxlbikgPT4ge1xyXG4gICAgdmFyIGxlbmd0aCA9IChsZW4pID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfH17W11cXDo7Pz48LC4vLT0nO1xyXG4gICAgdmFyIHBhc3N3b3JkID0gXCJcIjtcclxuICAgIHZhciBjaGFyYWN0ZXIgPSBcIlwiO1xyXG4gICAgdmFyIGNydW5jaCA9IHRydWU7XHJcbiAgICB3aGlsZSAocGFzc3dvcmQubGVuZ3RoIDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgZW50aXR5MSA9IE1hdGguY2VpbChzdHJpbmcubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTIgPSBNYXRoLmNlaWwobnVtZXJpYy5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgZW50aXR5MyA9IE1hdGguY2VpbChwdW5jdHVhdGlvbi5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgaG9sZCA9IHN0cmluZy5jaGFyQXQoZW50aXR5MSk7XHJcbiAgICAgICAgaG9sZCA9IChwYXNzd29yZC5sZW5ndGggJSAyID09IDApID8gKGhvbGQudG9VcHBlckNhc2UoKSkgOiAoaG9sZCk7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IGhvbGQ7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IG51bWVyaWMuY2hhckF0KGVudGl0eTIpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBwdW5jdHVhdGlvbi5jaGFyQXQoZW50aXR5Myk7XHJcbiAgICAgICAgcGFzc3dvcmQgPSBjaGFyYWN0ZXI7XHJcbiAgICB9XHJcbiAgICBwYXNzd29yZCA9IHBhc3N3b3JkLnNwbGl0KCcnKS5zb3J0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAuNSAtIE1hdGgucmFuZG9tKCkgfSkuam9pbignJyk7XHJcbiAgICByZXR1cm4gcGFzc3dvcmQuc3Vic3RyKDAsIGxlbmd0aCk7XHJcbn1cclxuXHJcbmV4cG9ydHMucGFzc3dvcmRfZ2VuZXJhdG9yID0gcGFzc3dvcmRfZ2VuZXJhdG9yOyJdfQ==\",\"originalCode\":\"const multer = require('multer');\\r\\nconst { v4: uuidv4 } = require('uuid');\\r\\nlet path = require('path');\\r\\nconst storage = multer.diskStorage({\\r\\n destination: function (req, file, cb) {\\r\\n cb(null, 'images');\\r\\n },\\r\\n filename: function (req, file, cb) {\\r\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\r\\n }\\r\\n});\\r\\n\\r\\nconst fileFilter = (req, file, cb) => {\\r\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\r\\n if (allowedFileTypes.includes(file.mimetype)) {\\r\\n cb(null, true);\\r\\n } else {\\r\\n cb(null, false);\\r\\n }\\r\\n}\\r\\n\\r\\nlet upload = multer({ storage, fileFilter });\\r\\n\\r\\nexports.upload = upload;\\r\\n\\r\\nconst password_generator = (len) => {\\r\\n var length = (len) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/f3/utils_f37ac8376b54b6ced952605900298d07.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2374\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":7861,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":7858,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"destination\",\"ranges\":[{\"startOffset\":248,\"endOffset\":302,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"filename\",\"ranges\":[{\"startOffset\":316,\"endOffset\":423,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"fileFilter\",\"ranges\":[{\"startOffset\":448,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":752,\"endOffset\":1636,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9d/placeRouter_9d9aca2c41f2c1b6283bdacdd67537b2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2415\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":1}],\"isBlockCoverage\":true}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/ee/placeController_ee3a20e34d4d356553af723b6f7f6a6e.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2416\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"VisitingPlaces.findById.then.res.statusCode\",\"ranges\":[{\"startOffset\":3107,\"endOffset\":3289,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3291,\"endOffset\":3471,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3479,\"endOffset\":3495,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3678,\"endOffset\":3860,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3862,\"endOffset\":3878,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3886,\"endOffset\":3902,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4032,\"endOffset\":4191,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4193,\"endOffset\":4209,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4217,\"endOffset\":4233,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwidmVyaWZ5TW9kZXJhdGVyIiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNB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T0FBUCxHQUFpQjlCLGNBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHNjaGVkdWxlQ29udHJvbGxlciA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3NjaGVkdWxlQ29udHJvbGxlcicpXHJcblxyXG5jb25zdCBzY2hlZHVsZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgUm91dGVzXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnLycpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeU1vZGVyYXRlciwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlQWxsU2NoZWR1bGVzKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBSb3V0ZXMgT24gSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvOnNjaGVkdWxlSWQnKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgc2NoZWR1bGVDb250cm9sbGVyLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvc2NoZWR1bGVzLycgKyByZXEucGFyYW1zLnNjaGVkdWxlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIudXBkYXRlU2NoZWR1bGVCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgc2NoZWR1bGVDb250cm9sbGVyLmRlbGV0ZVNjaGVkdWxlQnlJZCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnL3VzZXIvOnVzZXJJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAgc2NoZWR1bGVDb250cm9sbGVyLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gc2NoZWR1bGVSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9b/scheduleRouter_9b57edc7078385d142c957dea9d9e0be.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2417\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9621,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9618,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1085,\"endOffset\":1188,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1621,\"endOffset\":1661,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1824,\"endOffset\":1953,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2288,\"endOffset\":2328,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to add a schedule\\\"\\n });\\n });\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Update failed\\\"\\n });\\n });\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Delete failed\\\"\\n });\\n });\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwibXNnIiwiX21lc3NhZ2UiLCJhZGRTY2hlZHVsZSIsInNjaGVkdWxlIiwidXNlciIsImJvZHkiLCJwbGFjZSIsImRhdGUiLCJzdGF0ZSIsInRyYXZlbGxpbmdNZXRob2QiLCJjcmVhdGUiLCJkZWxldGVBbGxTY2hlZHVsZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInNjaGVkdWxlSWQiLCJ1cGRhdGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxxQkFBRCxDQUF6QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3hDTCxFQUFBQSxTQUFTLENBQUNNLElBQVYsQ0FBZUgsR0FBRyxDQUFDSSxLQUFuQixFQUEwQkMsUUFBMUIsQ0FBbUMsT0FBbkMsRUFBNENBLFFBQTVDLENBQXFELE1BQXJELEVBQ0tDLElBREwsQ0FDV0MsU0FBRCxJQUFlO0FBQ2pCTixJQUFBQSxHQUFHLENBQUNPLFVBQUosR0FBaUIs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Q1cwQixJQUFELElBQVU7QUFDWi9CLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQmdDLE1BQUFBLFFBQVEsRUFBQ1g7QUFBMUIsS0FBVDtBQUNILEdBTEwsRUFLUXBCLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTO0FBQ1pYLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQVZMO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gZ2V0IGRhdGFcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJ1c2VyXCI6IFN0cmluZyhyZXEucGFyYW1zLnVzZXJJZCkgfTtcclxuICAgIFNjaGVkdWxlcy5maW5kKHF1ZXJ5KS5wb3B1bGF0ZShcInBsYWNlXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+ICB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICBjb25zdCBtc2cgPSBlcnIuX21lc3NhZ2U7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IG1zZyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkZhaWxlZCB0byBnZXQgZGF0YVwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBhZGRTY2hlZHVsZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHNjaGVkdWxlID0ge1xyXG4gICAgICAgIHVzZXI6IHJlcS5ib2R5LnVzZXIsXHJcbiAgICAgICAgcGxhY2U6IHJlcS5ib2R5LnBsYWNlLFxyXG4gICAgICAgIGRhdGU6IHJlcS5ib2R5LmRhdGUsXHJcbiAgICAgICAgc3RhdGU6IFwibmV3XCIsXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZDogcmVxLmJvZHkudHJhdmVsbGluZ01ldGhvZFxyXG4gICAgfVxyXG4gICAgU2NoZWR1bGVzLmNyZWF0ZShzY2hlZHVsZSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6c2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgY29uc3QgbXNnID0gZXJyLl9tZXNzYWdlO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBtc2cgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gYWRkIGEgc2NoZWR1bGVcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzID0gZ2V0QWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmFkZFNjaGVkdWxlID0gYWRkU2NoZWR1bGU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsU2NoZWR1bGVzID0gZGVsZXRlQWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyID0gZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXI7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlOnNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBwbGFjZVwiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgU2NoZWR1bGVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuc2NoZWR1bGVJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTpzY2hlZHVsZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiVXBkYXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6cmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiRGVsZXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnRzLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSBnZXRTY2hlZHVsZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVNjaGVkdWxlQnlJZCA9IHVwZGF0ZVNjaGVkdWxlQnlJZDtcclxuZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5SWQgPSBkZWxldGVTY2hlZHVsZUJ5SWQ7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgVXNlcklEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vLyBjb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4vLyAgICAgU2NoZWR1bGVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuc2NoZWR1bGVJZClcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuLy8gICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4vLyAgICAgfSwgeyBuZXc6IHRydWUgfSlcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IGRlbGV0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4vLyAgICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuLy8gICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxuLy8gfSJdfQ==\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to add a schedule\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Update failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response:resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Delete failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1e/scheduleController_1ed35fc0c47927fadcf3cf43433b4df6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2542\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":846,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":881,\"endOffset\":1554,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1577,\"endOffset\":2348,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2378,\"endOffset\":2588,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":3041,\"endOffset\":3489,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3519,\"endOffset\":4012,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":4042,\"endOffset\":4480,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/e2/schedules_e2f8e79bc28961f4db3736c92d490e47.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2543\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0a/touristRouter_0ad938586662daadc81c6cb1ad2e0f53.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2545\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var error = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while deleting data'\\n });\\n });\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJtZXNzYWdlIiwiZ2V0QWxsVG91cmlzdHNCeU5hbWUiLCJib2R5Iiwic2ltaWxhclRvIiwic2VhcmNoQnkiLCIkdGV4dCIsIiRzZWFyY2giLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkVG91cmlzdCIsInJhbmRvbVBhc3N3b3JkIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwidG91cmlzdCIsInVzZXJuYW1lIiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsIm1vYmlsZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxUb3VyaXN0cyIsInJlbW92ZSIsInJlc3AiLCJyZXNwb25zZSIsImV4cG9ydHMiLCJnZXRUb3VyaXN0RGV0YWlsc0J5SWQiLCJ0b3VyaXN0SWQiLCJwYXJhbXMiLCJmaW5kQnlJZCIsInVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCIsImZpbmRCeUlkQW5kVXBkYXRlIiwiJHNldCIsIm5ldyIsImRlbGV0ZUFUb3VyaXN0QnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUUsY0FBYyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLE1BQUlDLEtB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O0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCK0IsTUFBQUEsUUFBUSxFQUFFRDtBQUEzQixLQUFUO0FBQ0gsR0FMTCxFQUtRN0IsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVM7QUFDWlYsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCRyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNILEdBVkw7QUFXSCxDQVpEOztBQWNBNkIsT0FBTyxDQUFDQyxxQkFBUixHQUFnQ0EscUJBQWhDO0FBQ0FELE9BQU8sQ0FBQ0ssd0JBQVIsR0FBbUNBLHdCQUFuQztBQUNBTCxPQUFPLENBQUNTLGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBUb3VyaXN0cyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG5jb25zdCB1dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzL3V0aWxzJyk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsVG91cmlzdHMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiIH07XHJcbiAgICAvLyB2YXIgb2JqID0gT2JqZWN0LmFzc2lnbihxdWVyeSwgeyAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH0pO1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgfVxyXG5cclxuICAgIHZhciBzb3J0YnkgPSByZXEuYm9keS5zb3J0QnkgfHwge307XHJcbiAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHRvdXJpc3RJZCA9IHJlcS5wYXJhbXMudG91cmlzdElkO1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWQodG91cmlzdElkKVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTsgXHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgXHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnRvdXJpc3RJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gIHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6ICdDb3VsZCBub3QgZmluZCB0b3VyaXN0IHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFUb3VyaXN0QnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy50b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZGVsZXRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcbiJdfQ==\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var error = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while deleting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9e/touristController_9ee6bfceb00c4d02fdcd8e12f129a687.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2546\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23082,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23079,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":954,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":986,\"endOffset\":1675,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1697,\"endOffset\":3064,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":3093,\"endOffset\":3369,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3808,\"endOffset\":4292,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":4328,\"endOffset\":4839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4869,\"endOffset\":5317,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/07/dashboardRouter_0791a49f2f45fc0f57ade98f27175c5c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2547\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/dashboardController_34872bbac017cfae6fcc33926d204118.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2548\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const app = require('../../app');\\n\\nconst server = require(\\\"supertest\\\")(app);\\n\\nconst jwt_decode = require('jwt-decode');\\n\\nconst Users = require('../../models/users');\\n\\nvar userToken;\\nvar assistantToken;\\nvar adminToken;\\nconst admin = {\\n \\\"firstname\\\": \\\"Admin\\\",\\n \\\"lastname\\\": \\\"Admin\\\",\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\n \\\"password\\\": \\\"admin-password\\\"\\n};\\nconst assistant = {\\n \\\"firstname\\\": \\\"Dinesh\\\",\\n \\\"lastname\\\": \\\"Chandimal\\\",\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\n};\\nconst tourist = {\\n \\\"firstname\\\": \\\"Sunil\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\n};\\n\\nconst signupAdmin = async () => {\\n await Users.deleteMany({});\\n await server.post(\\\"/users/signup/admin\\\").send(admin);\\n};\\n\\nconst getAdminToken = async () => {\\n if (adminToken) {\\n return adminToken;\\n }\\n\\n await signupAdmin();\\n var creds = {\\n username: admin.email,\\n password: admin.password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n adminToken = response.body.token;\\n return adminToken;\\n};\\n\\nconst addAssistant = async () => {\\n if (!adminToken) {\\n await getAdminToken();\\n }\\n\\n const response = await server.post(\\\"/employees\\\").set(\\\"Authorization\\\", `Bearer ${adminToken}`).send(assistant).expect(200);\\n return response.body.password;\\n};\\n\\nconst getAssistantToken = async () => {\\n if (assistantToken) {\\n return assistantToken;\\n }\\n\\n const password = await addAssistant();\\n var creds = {\\n username: assistant.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n assistantToken = response.body.token;\\n return assistantToken;\\n};\\n\\nconst addTourist = async () => {\\n if (!assistantToken) {\\n await getAssistantToken();\\n }\\n\\n const response = await server.post(\\\"/tourists\\\").set(\\\"Authorization\\\", `Bearer ${assistantToken}`).send(tourist).expect(200);\\n return response.body.password;\\n};\\n\\nconst getTouristToken = async () => {\\n if (userToken) {\\n return userToken;\\n }\\n\\n const password = await addTourist();\\n var creds = {\\n username: tourist.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n userToken = response.body.token;\\n return userToken;\\n};\\n\\nconst getExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Namal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\n \\\"mobile\\\": \\\"981114844\\\",\\n \\\"rommnumber\\\": \\\"41\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n return tourist._id.toString();\\n};\\n\\nconst getNonExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Kamal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n await tourist.remove();\\n return tourist._id.toString();\\n};\\n\\nconst decodeToken = token => {\\n var decoded = jwt_decode(token);\\n return decoded;\\n};\\n\\nmodule.exports = {\\n getAdminToken,\\n getAssistantToken,\\n getTouristToken,\\n decodeToken,\\n addTourist,\\n getTouristToken,\\n getExistingId,\\n getNonExistingId\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJfaGVscGVyLmpzIl0sIm5hbWVzIjpbImFwcCIsInJlcXVpcmUiLCJzZXJ2ZXIiLCJqd3RfZGVjb2RlIiwiVXNlcnMiLCJ1c2VyVG9rZW4iLCJhc3Npc3RhbnRUb2tlbiIsImFkbWluVG9rZW4iLCJhZG1pbiIsImFzc2lzdGFudCIsInRvdXJpc3QiLCJzaWdudXBBZG1pbiIsImRlbGV0ZU1hbnkiLCJwb3N0Iiwic2VuZCIsImdldEFkbWluVG9rZW4iLCJjcmVkcyIsInVzZXJuYW1lIiwiZW1haWwiLCJwYXNzd29yZCIsInJlc3BvbnNlIiwiYm9keSIsInRva2VuIiwiYWRkQXNzaXN0YW50Iiwic2V0IiwiZXhwZWN0IiwiZ2V0QXNzaXN0YW50VG9rZW4iLCJhZGRUb3VyaXN0IiwiZ2V0VG91cmlzdFRva2VuIiwiZ2V0RXhpc3RpbmdJZCIsIm5ld1RvdXJpc3QiLCJzYXZlIiwiX2lkIiwidG9TdHJpbmciLCJnZXROb25FeGlzdGluZ0lkIiwicmVtb3ZlIiwiZGVjb2RlVG9rZW4iLCJkZWNvZGVkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsV0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxXQUFELENBQVAsQ0FBcUJELEdBQXJCLENBQWY7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHRixPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNRyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxvQkFBRCxDQUFyQjs7QUFFQSxJQUFJSSxTQUFKO0FBQ0EsSUFBSUMsY0FBSjtBQUNBLElBQUlDLFVBQUo7QUFDQSxNQUFNQyxLQUFLLEdBQUc7QUFDVixlQUFhLE9BREg7QUFFVixjQUFZLE9BRkY7QUFHVixXQUFTLGlCQUhDO0FBSVYsY0FBWTtBQUpGLENBQWQ7QUFNQSxNQUFNQyxTQUFTLEdBQUc7QUFDZCxlQUFhLFFBREM7QUFFZCxjQUFZLFdBRkU7QUFHZCxXQUFTO0FB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QyxFQUFBQSxlQUQvRDtBQUNnRkMsRUFBQUEsYUFEaEY7QUFDK0ZLLEVBQUFBO0FBRC9GLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXBwID0gcmVxdWlyZSgnLi4vLi4vYXBwJyk7XHJcbmNvbnN0IHNlcnZlciA9IHJlcXVpcmUoXCJzdXBlcnRlc3RcIikoYXBwKTtcclxuY29uc3Qgand0X2RlY29kZSA9IHJlcXVpcmUoJ2p3dC1kZWNvZGUnKTtcclxuY29uc3QgVXNlcnMgPSByZXF1aXJlKCcuLi8uLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciB1c2VyVG9rZW47XHJcbnZhciBhc3Npc3RhbnRUb2tlbjtcclxudmFyIGFkbWluVG9rZW47XHJcbmNvbnN0IGFkbWluID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJBZG1pblwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkFkbWluXCIsXHJcbiAgICBcImVtYWlsXCI6IFwiYWRtaW5AZ21haWwuY29tXCIsXHJcbiAgICBcInBhc3N3b3JkXCI6IFwiYWRtaW4tcGFzc3dvcmRcIlxyXG59O1xyXG5jb25zdCBhc3Npc3RhbnQgPSB7XHJcbiAgICBcImZpcnN0bmFtZVwiOiBcIkRpbmVzaFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkNoYW5kaW1hbFwiLFxyXG4gICAgXCJlbWFpbFwiOiBcImRpbmVzaGNoYW5kaW1hbEBnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCB0b3VyaXN0ID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJTdW5pbFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkZlcm5hbWRvXCIsXHJcbiAgICBcImVtYWlsXCI6IFwic3VuaWxGZXJuYW1kb0BnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCBzaWdudXBBZG1pbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGF3YWl0IFVzZXJzLmRlbGV0ZU1hbnkoe30pO1xyXG4gICAgYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvdXNlcnMvc2lnbnVwL2FkbWluXCIpXHJcbiAgICAgICAgLnNlbmQoYWRtaW4pO1xyXG59O1xyXG5cclxuY29uc3QgZ2V0QWRtaW5Ub2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhZG1pblRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbiAgICB9XHJcbiAgICBhd2FpdCBzaWdudXBBZG1pbigpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiBhZG1pbi5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogYWRtaW4ucGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFkbWluVG9rZW4gPSByZXNwb25zZS5ib2R5LnRva2VuO1xyXG4gICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGFkZEFzc2lzdGFudCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYWRtaW5Ub2tlbikge1xyXG4gICAgICAgIGF3YWl0IGdldEFkbWluVG9rZW4oKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvZW1wbG95ZWVzXCIpXHJcbiAgICAgICAgLnNldChcIkF1dGhvcml6YXRpb25cIiwgYEJlYXJlciAke2FkbWluVG9rZW59YClcclxuICAgICAgICAuc2VuZChhc3Npc3RhbnQpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRBc3Npc3RhbnRUb2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhc3Npc3RhbnRUb2tlbikge1xyXG4gICAgICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkQXNzaXN0YW50KCk7XHJcbiAgICB2YXIgY3JlZHMgPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IGFzc2lzdGFudC5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogcGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFzc2lzdGFudFRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxufVxyXG5cclxuY29uc3QgYWRkVG91cmlzdCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYXNzaXN0YW50VG9rZW4pIHtcclxuICAgICAgICBhd2FpdCBnZXRBc3Npc3RhbnRUb2tlbigpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi90b3VyaXN0c1wiKVxyXG4gICAgICAgIC5zZXQoXCJBdXRob3JpemF0aW9uXCIsIGBCZWFyZXIgJHthc3Npc3RhbnRUb2tlbn1gKVxyXG4gICAgICAgIC5zZW5kKHRvdXJpc3QpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRUb3VyaXN0VG9rZW4gPSBhc3luYyAoKSA9PiB7XHJcbiAgICBpZiAodXNlclRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIHVzZXJUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkVG91cmlzdCgpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiB0b3VyaXN0LmVtYWlsLFxyXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlcnZlclxyXG4gICAgICAgIC5wb3N0KFwiL3VzZXJzL2xvZ2luXCIpXHJcbiAgICAgICAgLnNlbmQoY3JlZHMpO1xyXG4gICAgdXNlclRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiB1c2VyVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGdldEV4aXN0aW5nSWQgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBuZXdUb3VyaXN0ID0ge1xyXG4gICAgICAgIFwiZmlyc3RuYW1lXCI6IFwiTmFtYWxcIixcclxuICAgICAgICBcImxhc3RuYW1lXCI6IFwiRmVybmFtZG9cIixcclxuICAgICAgICBcImVtYWlsXCI6IFwibmFtYWxmZXJuYW1kb0BnbWFpbC5jb21cIixcclxuICAgICAgICBcIm1vYmlsZVwiOiBcIjk4MTExNDg0NFwiLFxyXG4gICAgICAgIFwicm9tbW51bWJlclwiIDogXCI0MVwiLFxyXG5cclxuICAgIH1cclxuICAgIGNvbnN0IHRvdXJpc3QgPSBuZXcgVXNlcnMobmV3VG91cmlzdCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnNhdmUoKTtcclxuXHJcbiAgICByZXR1cm4gdG91cmlzdC5faWQudG9TdHJpbmcoKTtcclxuXHJcbiAgICBcclxufVxyXG5cclxuY29uc3QgZ2V0Tm9uRXhpc3RpbmdJZCA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1RvdXJpc3QgPSB7XHJcbiAgICAgICAgXCJmaXJzdG5hbWVcIjogXCJLYW1hbFwiLFxyXG4gICAgICAgIFwibGFzdG5hbWVcIjogXCJGZXJuYW1kb1wiLFxyXG4gICAgICAgIFwiZW1haWxcIjogXCJrYW1hbGZlcm5hbWRvQGdtYWlsLmNvbVwiXHJcbiAgICB9XHJcbiAgICBjb25zdCB0b3VyaXN0ID0gbmV3IFVzZXJzKG5ld1RvdXJpc3QpO1xyXG4gICAgYXdhaXQgdG91cmlzdC5zYXZlKCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnJlbW92ZSgpO1xyXG5cclxuICAgIHJldHVybiB0b3VyaXN0Ll9pZC50b1N0cmluZygpO1xyXG59XHJcblxyXG5jb25zdCBkZWNvZGVUb2tlbiA9ICh0b2tlbikgPT4ge1xyXG4gICAgdmFyIGRlY29kZWQgPSBqd3RfZGVjb2RlKHRva2VuKTtcclxuICAgIHJldHVybiBkZWNvZGVkO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGdldEFkbWluVG9rZW4sIGdldEFzc2lzdGFudFRva2VuLCBnZXRUb3VyaXN0VG9rZW4sIGRlY29kZVRva2VuLCBhZGRUb3VyaXN0LCBnZXRUb3VyaXN0VG9rZW4gLGdldEV4aXN0aW5nSWQgLGdldE5vbkV4aXN0aW5nSWRcclxufVxyXG4iXX0=\",\"originalCode\":\"const app = require('../../app');\\r\\nconst server = require(\\\"supertest\\\")(app);\\r\\nconst jwt_decode = require('jwt-decode');\\r\\nconst Users = require('../../models/users');\\r\\n\\r\\nvar userToken;\\r\\nvar assistantToken;\\r\\nvar adminToken;\\r\\nconst admin = {\\r\\n \\\"firstname\\\": \\\"Admin\\\",\\r\\n \\\"lastname\\\": \\\"Admin\\\",\\r\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\r\\n \\\"password\\\": \\\"admin-password\\\"\\r\\n};\\r\\nconst assistant = {\\r\\n \\\"firstname\\\": \\\"Dinesh\\\",\\r\\n \\\"lastname\\\": \\\"Chandimal\\\",\\r\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\r\\n};\\r\\nconst tourist = {\\r\\n \\\"firstname\\\": \\\"Sunil\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\r\\n};\\r\\nconst signupAdmin = async () => {\\r\\n await Users.deleteMany({});\\r\\n await server\\r\\n .post(\\\"/users/signup/admin\\\")\\r\\n .send(admin);\\r\\n};\\r\\n\\r\\nconst getAdminToken = async () => {\\r\\n if (adminToken) {\\r\\n return adminToken;\\r\\n }\\r\\n await signupAdmin();\\r\\n var creds = {\\r\\n username: admin.email,\\r\\n password: admin.password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n adminToken = response.body.token;\\r\\n return adminToken;\\r\\n}\\r\\n\\r\\nconst addAssistant = async () => {\\r\\n if (!adminToken) {\\r\\n await getAdminToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/employees\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${adminToken}`)\\r\\n .send(assistant)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getAssistantToken = async () => {\\r\\n if (assistantToken) {\\r\\n return assistantToken;\\r\\n }\\r\\n const password = await addAssistant();\\r\\n var creds = {\\r\\n username: assistant.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n assistantToken = response.body.token;\\r\\n return assistantToken;\\r\\n}\\r\\n\\r\\nconst addTourist = async () => {\\r\\n if (!assistantToken) {\\r\\n await getAssistantToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/tourists\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${assistantToken}`)\\r\\n .send(tourist)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getTouristToken = async () => {\\r\\n if (userToken) {\\r\\n return userToken;\\r\\n }\\r\\n const password = await addTourist();\\r\\n var creds = {\\r\\n username: tourist.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n userToken = response.body.token;\\r\\n return userToken;\\r\\n}\\r\\n\\r\\nconst getExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Namal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\r\\n \\\"mobile\\\": \\\"981114844\\\",\\r\\n \\\"rommnumber\\\" : \\\"41\\\",\\r\\n\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n\\r\\n return tourist._id.toString();\\r\\n\\r\\n \\r\\n}\\r\\n\\r\\nconst getNonExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Kamal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n await tourist.remove();\\r\\n\\r\\n return tourist._id.toString();\\r\\n}\\r\\n\\r\\nconst decodeToken = (token) => {\\r\\n var decoded = jwt_decode(token);\\r\\n return decoded;\\r\\n}\\r\\n\\r\\nmodule.exports = {\\r\\n getAdminToken, getAssistantToken, getTouristToken, decodeToken, addTourist, getTouristToken ,getExistingId ,getNonExistingId\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/5d/user_helper_5d6019747344ffe72872c6622cdf23b3.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2692\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\user_helper.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13241,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":677,\"endOffset\":778,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"getAdminToken\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1089,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"addAssistant\",\"ranges\":[{\"startOffset\":1113,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAssistantToken\",\"ranges\":[{\"startOffset\":1368,\"endOffset\":1686,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1708,\"endOffset\":1943,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristToken\",\"ranges\":[{\"startOffset\":1970,\"endOffset\":2264,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getExistingId\",\"ranges\":[{\"startOffset\":2289,\"endOffset\":2574,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getNonExistingId\",\"ranges\":[{\"startOffset\":2602,\"endOffset\":2862,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"decodeToken\",\"ranges\":[{\"startOffset\":2885,\"endOffset\":2950,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Places = require('../../models/visitingPlaces');\\n\\nconst mockPlaces = require('../mockData/places.data');\\n\\nconst initialPlaces = mockPlaces;\\n\\nconst addPlacesToDb = async () => {\\n const placeObjects = initialPlaces.map(place => new Places(place));\\n const promiseArray = placeObjects.map(place => place.save());\\n await Promise.all(promiseArray);\\n};\\n\\nconst getExistingId = async () => {\\n const newPlace = {\\n \\\"name\\\": \\\"Galle Dutch Fort\\\",\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\n \\\"location\\\": {\\n coordinates: [6.02453869574481, 80.21798550785017]\\n },\\n \\\"distance\\\": \\\"20km\\\",\\n \\\"timeToReach\\\": \\\"30min\\\",\\n \\\"images\\\": [],\\n \\\"methods\\\": ['Car']\\n };\\n const place = new Places(newPlace);\\n await place.save();\\n return place._id.toString();\\n};\\n\\nconst getNonExistingId = async () => {\\n const newPlace = {\\n \\\"name\\\": \\\"To be deleted\\\",\\n \\\"description\\\": \\\"Duis amet in ipsum ut.\\\",\\n \\\"location\\\": {\\n coordinates: [6.02453869574481, 80.21798550785017]\\n },\\n \\\"distance\\\": \\\"10km\\\",\\n \\\"timeToReach\\\": \\\"20min\\\",\\n \\\"images\\\": [],\\n \\\"methods\\\": ['Foot']\\n };\\n const place = new Places(newPlace);\\n await place.save();\\n await place.remove();\\n return place._id.toString();\\n};\\n\\nconst placesInDb = async () => {\\n const places = await Note.find({});\\n return places;\\n};\\n\\nmodule.exports = {\\n initialPlaces,\\n addPlacesToDb,\\n getExistingId,\\n getNonExistingId,\\n placesInDb\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlX2hlbHBlci5qcyJdLCJuYW1lcyI6WyJQbGFjZXMiLCJyZXF1aXJlIiwibW9ja1BsYWNlcyIsImluaXRpYWxQbGFjZXMiLCJhZGRQbGFjZXNUb0RiIiwicGxhY2VPYmplY3RzIiwibWFwIiwicGxhY2UiLCJwcm9taXNlQXJyYXkiLCJzYXZlIiwiUHJvbWlzZSIsImFsbCIsImdldEV4aXN0aW5nSWQiLCJuZXdQbGFjZSIsImNvb3JkaW5hdGVzIiwiX2lkIiwidG9TdHJpbmciLCJnZXROb25FeGlzdGluZ0lkIiwicmVtb3ZlIiwicGxhY2VzSW5EYiIsInBsYWNlcyIsIk5vdGUiLCJmaW5kIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsNkJBQUQsQ0FBdEI7O0FBQ0EsTUFBTUMsVUFBVSxHQUFHRCxPQUFPLENBQUMseUJBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsYUFBYSxHQUFHRCxVQUF0Qjs7QUFFQSxNQUFNRSxhQUFhLEdBQUcsWUFBWTtBQUM5QixRQUFNQyxZQUFZLEdBQUdGLGFBQWEsQ0FDN0JHLEdBRGdCLENBQ1pDLEtBQUssSUFBSSxJQUFJUCxNQUFKLENBQVdPLEtBQVgsQ0FERyxDQUFyQjtBQUVBLFFBQU1DLFlBQVksR0FBR0gsWUFBWSxDQUFDQyxHQUFiLENBQWlCQyxLQUFLLElBQUlBLEtBQUssQ0FBQ0UsSUFBTixFQUExQixDQUFyQjtBQUNBLFFBQU1DLE9BQU8sQ0FBQ0MsR0FBUixDQUFZSCxZQUFaLENBQU47QUFDSCxDQUxEOztBQU9BLE1BQU1JLGFBQWEsR0FBRyxZQUFZO0FBQzlCLFFBQU1DLFFBQVEsR0FBRztBQUNiLFlBQVEsa0JBREs7QUFFYixtQkFBZSwyTEFGRjtBQUdiLGdCQUFZO0FBQ1JDLE1BQUFBLFdBQVcsRUFBRSxDQUFDLGdCQUFELEVBQW1CLGlCQUFuQjtBQURMLEtBSEM7QUFNYixnQkFBWSxNQU5DO0FBT2IsbUJBQWUsT0FQRjtBQVFiLGNBQVUsRUFSRztBQVNiLGVBQVcsQ0FBQyxLQUFEO0FBVEUsR0FBakI7QUFXQSxRQUFNUCxLQUFLLEdBQUcsSUFBSVAsTUFBSixDQUFXYSxRQUFYLENBQWQ7QUFDQSxRQUFNTixLQUFLLENBQUNFLElBQU4sRUFBTjtBQUVBLFNBQU9GLEtBQUssQ0FBQ1EsR0FBTixDQUFVQyxRQUFWLEVBQVA7QUFDSCxDQWhCRDs7QUFrQkEsTUFBTUMsZ0JBQWdCLEdBQUcsWUFBWTtBQUNqQyxRQUFNSixRQUFRLEdBQUc7QUFDYixZQUFRLGVBREs7QUFFYixtQkFBZSx3QkFGRjtBQUdiLGdCQUFZO0FBQ1JDLE1BQUFBLFdBQVcsRUFBRSxDQUFDLGdCQUFELEVBQW1CLGlCQUFuQjtBQURMLEtBSEM7QUFNYixnQkFBWSxNQU5DO0FBT2IsbUJBQWUsT0FQRjtBQVFiLGNBQVUsRUFSRztBQVNiLGVBQVcsQ0FBQyxNQUFEO0FBVEUsR0FBakI7QUFXQSxRQUFNUCxLQUFLLEdBQUcsSUFBSVAsTUFBSixDQUFXYSxRQUFYLENBQWQ7QUFDQSxRQUFNTixLQUFLLENBQUNFLElBQU4sRUFBTjtBQUNBLFFBQU1GLEtBQUssQ0FBQ1csTUFBTixFQUFOO0FBRUEsU0FBT1gsS0FBSyxDQUFDUSxHQUFOLENBQVVDLFFBQVYsRUFBUDtBQUNILENBakJEOztBQW1CQSxNQUFNRyxVQUFVLEdBQUcsWUFBWTtBQUMzQixRQUFNQyxNQUFNLEdBQUcsTUFBTUMsSUFBSSxDQUFDQyxJQUFMLENBQVUsRUFBVixDQUFyQjtBQUNBLFNBQU9GLE1BQVA7QUFDSCxDQUhEOztBQUtBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYnJCLEVBQUFBLGFBRGE7QUFDRUMsRUFBQUEsYUFERjtBQUNpQlEsRUFBQUEsYUFEakI7QUFDZ0NLLEVBQUFBLGdCQURoQztBQUNrREUsRUFBQUE7QUFEbEQsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZXMgPSByZXF1aXJlKCcuLi8uLi9tb2RlbHMvdmlzaXRpbmdQbGFjZXMnKTtcclxuY29uc3QgbW9ja1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vY2tEYXRhL3BsYWNlcy5kYXRhJyk7XHJcblxyXG5jb25zdCBpbml0aWFsUGxhY2VzID0gbW9ja1BsYWNlcztcclxuXHJcbmNvbnN0IGFkZFBsYWNlc1RvRGIgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBwbGFjZU9iamVjdHMgPSBpbml0aWFsUGxhY2VzXHJcbiAgICAgICAgLm1hcChwbGFjZSA9PiBuZXcgUGxhY2VzKHBsYWNlKSk7XHJcbiAgICBjb25zdCBwcm9taXNlQXJyYXkgPSBwbGFjZU9iamVjdHMubWFwKHBsYWNlID0+IHBsYWNlLnNhdmUoKSk7XHJcbiAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlQXJyYXkpO1xyXG59XHJcblxyXG5jb25zdCBnZXRFeGlzdGluZ0lkID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgbmV3UGxhY2UgPSB7XHJcbiAgICAgICAgXCJuYW1lXCI6IFwiR2FsbGUgRHV0Y2ggRm9ydFwiLFxyXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEdWlzIGFtZXQgaW4gaXBzdW0gdXQgY29uc2VxdWF0LiBBbGlxdWlwIHF1aXMgcXVpcyBldCBsYWJvcmlzIG5vbiBtb2xsaXQgbmlzaSB1dCBtb2xsaXQgZnVnaWF0IG9jY2FlY2F0IGlkIG5vc3RydWQuIE1vbGxpdCBtb2xsaXQgYWxpcXVpcCByZXByZWhlbmRlcml0IHZvbHVwdGF0ZSBjb21tb2RvIGlkIG5vc3RydWQgbm9uLlwiLFxyXG4gICAgICAgIFwibG9jYXRpb25cIjoge1xyXG4gICAgICAgICAgICBjb29yZGluYXRlczogWzYuMDI0NTM4Njk1NzQ0ODEsIDgwLjIxNzk4NTUwNzg1MDE3XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJkaXN0YW5jZVwiOiBcIjIwa21cIixcclxuICAgICAgICBcInRpbWVUb1JlYWNoXCI6IFwiMzBtaW5cIixcclxuICAgICAgICBcImltYWdlc1wiOiBbXSxcclxuICAgICAgICBcIm1ldGhvZHNcIjogWydDYXInXVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHBsYWNlID0gbmV3IFBsYWNlcyhuZXdQbGFjZSk7XHJcbiAgICBhd2FpdCBwbGFjZS5zYXZlKCk7XHJcblxyXG4gICAgcmV0dXJuIHBsYWNlLl9pZC50b1N0cmluZygpO1xyXG59XHJcblxyXG5jb25zdCBnZXROb25FeGlzdGluZ0lkID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgbmV3UGxhY2UgPSB7XHJcbiAgICAgICAgXCJuYW1lXCI6IFwiVG8gYmUgZGVsZXRlZFwiLFxyXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEdWlzIGFtZXQgaW4gaXBzdW0gdXQuXCIsXHJcbiAgICAgICAgXCJsb2NhdGlvblwiOiB7XHJcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBbNi4wMjQ1Mzg2OTU3NDQ4MSwgODAuMjE3OTg1NTA3ODUwMTddXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcImRpc3RhbmNlXCI6IFwiMTBrbVwiLFxyXG4gICAgICAgIFwidGltZVRvUmVhY2hcIjogXCIyMG1pblwiLFxyXG4gICAgICAgIFwiaW1hZ2VzXCI6IFtdLFxyXG4gICAgICAgIFwibWV0aG9kc1wiOiBbJ0Zvb3QnXVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHBsYWNlID0gbmV3IFBsYWNlcyhuZXdQbGFjZSk7XHJcbiAgICBhd2FpdCBwbGFjZS5zYXZlKCk7XHJcbiAgICBhd2FpdCBwbGFjZS5yZW1vdmUoKTtcclxuXHJcbiAgICByZXR1cm4gcGxhY2UuX2lkLnRvU3RyaW5nKCk7XHJcbn1cclxuXHJcbmNvbnN0IHBsYWNlc0luRGIgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBwbGFjZXMgPSBhd2FpdCBOb3RlLmZpbmQoe30pO1xyXG4gICAgcmV0dXJuIHBsYWNlcztcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBpbml0aWFsUGxhY2VzLCBhZGRQbGFjZXNUb0RiLCBnZXRFeGlzdGluZ0lkLCBnZXROb25FeGlzdGluZ0lkLCBwbGFjZXNJbkRiXHJcbn0iXX0=\",\"originalCode\":\"const Places = require('../../models/visitingPlaces');\\r\\nconst mockPlaces = require('../mockData/places.data');\\r\\n\\r\\nconst initialPlaces = mockPlaces;\\r\\n\\r\\nconst addPlacesToDb = async () => {\\r\\n const placeObjects = initialPlaces\\r\\n .map(place => new Places(place));\\r\\n const promiseArray = placeObjects.map(place => place.save());\\r\\n await Promise.all(promiseArray);\\r\\n}\\r\\n\\r\\nconst getExistingId = async () => {\\r\\n const newPlace = {\\r\\n \\\"name\\\": \\\"Galle Dutch Fort\\\",\\r\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\r\\n \\\"location\\\": {\\r\\n coordinates: [6.02453869574481, 80.21798550785017]\\r\\n },\\r\\n \\\"distance\\\": \\\"20km\\\",\\r\\n \\\"timeToReach\\\": \\\"30min\\\",\\r\\n \\\"images\\\": [],\\r\\n \\\"methods\\\": ['Car']\\r\\n };\\r\\n const place = new Places(newPlace);\\r\\n await place.save();\\r\\n\\r\\n return place._id.toString();\\r\\n}\\r\\n\\r\\nconst getNonExistingId = async () => {\\r\\n const newPlace = {\\r\\n \\\"name\\\": \\\"To be deleted\\\",\\r\\n \\\"description\\\": \\\"Duis amet in ipsum ut.\\\",\\r\\n \\\"location\\\": {\\r\\n coordinates: [6.02453869574481, 80.21798550785017]\\r\\n },\\r\\n \\\"distance\\\": \\\"10km\\\",\\r\\n \\\"timeToReach\\\": \\\"20min\\\",\\r\\n \\\"images\\\": [],\\r\\n \\\"methods\\\": ['Foot']\\r\\n };\\r\\n const place = new Places(newPlace);\\r\\n await place.save();\\r\\n await place.remove();\\r\\n\\r\\n return place._id.toString();\\r\\n}\\r\\n\\r\\nconst placesInDb = async () => {\\r\\n const places = await Note.find({});\\r\\n return places;\\r\\n}\\r\\n\\r\\nmodule.exports = {\\r\\n initialPlaces, addPlacesToDb, getExistingId, getNonExistingId, placesInDb\\r\\n}\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/f7/place_helper_f736d6463224b7f5175e218faaaa4ce9.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"3229\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\place_helper.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":6530,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":6527,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"addPlacesToDb\",\"ranges\":[{\"startOffset\":258,\"endOffset\":442,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":313,\"endOffset\":339,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":382,\"endOffset\":403,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"getExistingId\",\"ranges\":[{\"startOffset\":467,\"endOffset\":1014,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getNonExistingId\",\"ranges\":[{\"startOffset\":1042,\"endOffset\":1448,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"placesInDb\",\"ranges\":[{\"startOffset\":1470,\"endOffset\":1540,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const places = [{\\n \\\"name\\\": \\\"Mirissa\\\",\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\n \\\"location\\\": {\\n \\\"coordinates\\\": [5.9447392257447005, 80.45886764887479]\\n },\\n \\\"distance\\\": \\\"20km\\\",\\n \\\"timeToReach\\\": \\\"30min\\\",\\n \\\"images\\\": [],\\n \\\"methods\\\": ['Bus', 'Car', 'Foot']\\n}, {\\n \\\"name\\\": \\\"Unawatuna\\\",\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\n \\\"location\\\": {\\n \\\"coordinates\\\": [6.009847327808601, 80.24929493589147]\\n },\\n \\\"distance\\\": \\\"20km\\\",\\n \\\"timeToReach\\\": \\\"30min\\\",\\n \\\"images\\\": [],\\n \\\"methods\\\": ['Bus', 'Foot']\\n}, {\\n \\\"name\\\": \\\"Jungle Beach\\\",\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\n \\\"location\\\": {\\n \\\"coordinates\\\": [6.0175219725350635, 80.23893195618767]\\n },\\n \\\"distance\\\": \\\"20km\\\",\\n \\\"timeToReach\\\": \\\"30min\\\",\\n \\\"images\\\": [],\\n \\\"methods\\\": ['Foot']\\n}];\\nmodule.exports = places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlcy5kYXRhLmpzIl0sIm5hbWVzIjpbInBsYWNlcyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE1BQU0sR0FBRyxDQUNYO0FBQ0ksVUFBUSxTQURaO0FBRUksaUJBQWUsMkxBRm5CO0FBR0ksY0FBWTtBQUNSLG1CQUFlLENBQUMsa0JBQUQsRUFBcUIsaUJBQXJCO0FBRFAsR0FIaEI7QUFNSSxjQUFZLE1BTmhCO0FBT0ksaUJBQWUsT0FQbkI7QUFRSSxZQUFVLEVBUmQ7QUFTSSxhQUFXLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxNQUFmO0FBVGYsQ0FEVyxFQVlYO0FBQ0ksVUFBUSxXQURaO0FBRUksaUJBQWUsMkxBRm5CO0FBR0ksY0FBWTtBQUNSLG1CQUFlLENBQUMsaUJBQUQsRUFBb0IsaUJBQXBCO0FBRFAsR0FIaEI7QUFNSSxjQUFZLE1BTmhCO0FBT0ksaUJBQWUsT0FQbkI7QUFRSSxZQUFVLEVBUmQ7QUFTSSxhQUFXLENBQUMsS0FBRCxFQUFRLE1BQVI7QUFUZixDQVpXLEVBdUJYO0FBQ0ksVUFBUSxjQURaO0FBRUksaUJBQWUsMkxBRm5CO0FBR0ksY0FBWTtBQUNSLG1CQUFlLENBQUMsa0JBQUQsRUFBcUIsaUJBQXJCO0FBRFAsR0FIaEI7QUFNSSxjQUFZLE1BTmhCO0FBT0ksaUJBQWUsT0FQbkI7QUFRSSxZQUFVLEVBUmQ7QUFTSSxhQUFXLENBQUMsTUFBRDtBQVRmLENBdkJXLENBQWY7QUFvQ0FDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkYsTUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBwbGFjZXMgPSBbXHJcbiAgICB7XHJcbiAgICAgICAgXCJuYW1lXCI6IFwiTWlyaXNzYVwiLFxyXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEdWlzIGFtZXQgaW4gaXBzdW0gdXQgY29uc2VxdWF0LiBBbGlxdWlwIHF1aXMgcXVpcyBldCBsYWJvcmlzIG5vbiBtb2xsaXQgbmlzaSB1dCBtb2xsaXQgZnVnaWF0IG9jY2FlY2F0IGlkIG5vc3RydWQuIE1vbGxpdCBtb2xsaXQgYWxpcXVpcCByZXByZWhlbmRlcml0IHZvbHVwdGF0ZSBjb21tb2RvIGlkIG5vc3RydWQgbm9uLlwiLFxyXG4gICAgICAgIFwibG9jYXRpb25cIjoge1xyXG4gICAgICAgICAgICBcImNvb3JkaW5hdGVzXCI6IFs1Ljk0NDczOTIyNTc0NDcwMDUsIDgwLjQ1ODg2NzY0ODg3NDc5XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJkaXN0YW5jZVwiOiBcIjIwa21cIixcclxuICAgICAgICBcInRpbWVUb1JlYWNoXCI6IFwiMzBtaW5cIixcclxuICAgICAgICBcImltYWdlc1wiOiBbXSxcclxuICAgICAgICBcIm1ldGhvZHNcIjogWydCdXMnLCAnQ2FyJywgJ0Zvb3QnXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBcIm5hbWVcIjogXCJVbmF3YXR1bmFcIixcclxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRHVpcyBhbWV0IGluIGlwc3VtIHV0IGNvbnNlcXVhdC4gQWxpcXVpcCBxdWlzIHF1aXMgZXQgbGFib3JpcyBub24gbW9sbGl0IG5pc2kgdXQgbW9sbGl0IGZ1Z2lhdCBvY2NhZWNhdCBpZCBub3N0cnVkLiBNb2xsaXQgbW9sbGl0IGFsaXF1aXAgcmVwcmVoZW5kZXJpdCB2b2x1cHRhdGUgY29tbW9kbyBpZCBub3N0cnVkIG5vbi5cIixcclxuICAgICAgICBcImxvY2F0aW9uXCI6IHtcclxuICAgICAgICAgICAgXCJjb29yZGluYXRlc1wiOiBbNi4wMDk4NDczMjc4MDg2MDEsIDgwLjI0OTI5NDkzNTg5MTQ3XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJkaXN0YW5jZVwiOiBcIjIwa21cIixcclxuICAgICAgICBcInRpbWVUb1JlYWNoXCI6IFwiMzBtaW5cIixcclxuICAgICAgICBcImltYWdlc1wiOiBbXSxcclxuICAgICAgICBcIm1ldGhvZHNcIjogWydCdXMnLCAnRm9vdCddXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIFwibmFtZVwiOiBcIkp1bmdsZSBCZWFjaFwiLFxyXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEdWlzIGFtZXQgaW4gaXBzdW0gdXQgY29uc2VxdWF0LiBBbGlxdWlwIHF1aXMgcXVpcyBldCBsYWJvcmlzIG5vbiBtb2xsaXQgbmlzaSB1dCBtb2xsaXQgZnVnaWF0IG9jY2FlY2F0IGlkIG5vc3RydWQuIE1vbGxpdCBtb2xsaXQgYWxpcXVpcCByZXByZWhlbmRlcml0IHZvbHVwdGF0ZSBjb21tb2RvIGlkIG5vc3RydWQgbm9uLlwiLFxyXG4gICAgICAgIFwibG9jYXRpb25cIjoge1xyXG4gICAgICAgICAgICBcImNvb3JkaW5hdGVzXCI6IFs2LjAxNzUyMTk3MjUzNTA2MzUsIDgwLjIzODkzMTk1NjE4NzY3XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJkaXN0YW5jZVwiOiBcIjIwa21cIixcclxuICAgICAgICBcInRpbWVUb1JlYWNoXCI6IFwiMzBtaW5cIixcclxuICAgICAgICBcImltYWdlc1wiOiBbXSxcclxuICAgICAgICBcIm1ldGhvZHNcIjogWydGb290J11cclxuICAgIH0sXHJcbl07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHBsYWNlczsiXX0=\",\"originalCode\":\"const places = [\\r\\n {\\r\\n \\\"name\\\": \\\"Mirissa\\\",\\r\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\r\\n \\\"location\\\": {\\r\\n \\\"coordinates\\\": [5.9447392257447005, 80.45886764887479]\\r\\n },\\r\\n \\\"distance\\\": \\\"20km\\\",\\r\\n \\\"timeToReach\\\": \\\"30min\\\",\\r\\n \\\"images\\\": [],\\r\\n \\\"methods\\\": ['Bus', 'Car', 'Foot']\\r\\n },\\r\\n {\\r\\n \\\"name\\\": \\\"Unawatuna\\\",\\r\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\r\\n \\\"location\\\": {\\r\\n \\\"coordinates\\\": [6.009847327808601, 80.24929493589147]\\r\\n },\\r\\n \\\"distance\\\": \\\"20km\\\",\\r\\n \\\"timeToReach\\\": \\\"30min\\\",\\r\\n \\\"images\\\": [],\\r\\n \\\"methods\\\": ['Bus', 'Foot']\\r\\n },\\r\\n {\\r\\n \\\"name\\\": \\\"Jungle Beach\\\",\\r\\n \\\"description\\\": \\\"Duis amet in ipsum ut consequat. Aliquip quis quis et laboris non mollit nisi ut mollit fugiat occaecat id nostrud. Mollit mollit aliquip reprehenderit voluptate commodo id nostrud non.\\\",\\r\\n \\\"location\\\": {\\r\\n \\\"coordinates\\\": [6.0175219725350635, 80.23893195618767]\\r\\n },\\r\\n \\\"distance\\\": \\\"20km\\\",\\r\\n \\\"timeToReach\\\": \\\"30min\\\",\\r\\n \\\"images\\\": [],\\r\\n \\\"methods\\\": ['Foot']\\r\\n },\\r\\n];\\r\\n\\r\\nmodule.exports = places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c7/placesdata_c7d929916abb793b06246bc83618a0c3.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"3230\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\mockData\\\\places.data.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4573,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4570,\"count\":1}],\"isBlockCoverage\":false}]}}]},{\"leaks\":false,\"numFailingTests\":0,\"numPassingTests\":8,\"numPendingTests\":0,\"numTodoTests\":0,\"openHandles\":[],\"perfStats\":{\"end\":1614411970415,\"runtime\":1443,\"slow\":false,\"start\":1614411968972},\"skipped\":false,\"snapshot\":{\"added\":0,\"fileDeleted\":false,\"matched\":0,\"unchecked\":0,\"unmatched\":0,\"updated\":0,\"uncheckedKeys\":[]},\"testFilePath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\schedule-id.test.js\",\"testResults\":[{\"ancestorTitles\":[\"GET /schedule/:visitingPlaceId\"],\"duration\":15,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /schedule/:visitingPlaceId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"GET /schedule/:visitingPlaceId\"],\"duration\":18,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /schedule/:visitingPlaceId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"GET /schedule/:visitingPlaceId\"],\"duration\":13,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"GET /schedule/:visitingPlaceId invalid place id - 404\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"invalid place id - 404\"},{\"ancestorTitles\":[\"POST /schedules/:visitingPlaceId\"],\"duration\":12,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"POST /schedules/:visitingPlaceId does not support - 403\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"does not support - 403\"},{\"ancestorTitles\":[\"PUT /schedules/:visitingPlaceId\"],\"duration\":7,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /schedules/:visitingPlaceId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"PUT /schedules/:visitingPlaceId\"],\"duration\":18,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"PUT /schedules/:visitingPlaceId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"},{\"ancestorTitles\":[\"DELETE /places/:visitingPlaceId\"],\"duration\":9,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /places/:visitingPlaceId requires Authorization - 401\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"requires Authorization - 401\"},{\"ancestorTitles\":[\"DELETE /places/:visitingPlaceId\"],\"duration\":17,\"failureDetails\":[],\"failureMessages\":[],\"fullName\":\"DELETE /places/:visitingPlaceId with Authorization - 200\",\"location\":null,\"numPassingAsserts\":0,\"status\":\"passed\",\"title\":\"with Authorization - 200\"}],\"failureMessage\":null,\"v8Coverage\":[{\"codeTransformResult\":{\"code\":\"var createError = require('http-errors');\\n\\nvar express = require('express');\\n\\nconst cors = require('cors');\\n\\nvar path = require('path');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst expressValidator = require('express-validator');\\n\\nvar session = require('express-session');\\n\\nvar FileStore = require('session-file-store')(session);\\n\\nvar cookieParser = require('cookie-parser');\\n\\nvar logger = require('morgan');\\n\\nvar passport = require('passport');\\n\\nconst mongoose = require('mongoose');\\n\\nrequire('dotenv').config();\\n\\nvar userRouter = require('./routes/userRouter');\\n\\nvar employeeRouter = require('./routes/employeeRouter');\\n\\nvar placeRouter = require('./routes/placeRouter');\\n\\nvar scheduleRouter = require('./routes/scheduleRouter');\\n\\nvar touristRouter = require('./routes/touristRouter');\\n\\nvar dashboardRouter = require('./routes/dashboardRouter');\\n\\nvar app = express(); // view engine setup\\n\\napp.set('views', path.join(__dirname, 'views'));\\napp.set('view engine', 'jade');\\napp.use(cors());\\napp.use(passport.initialize());\\napp.use(bodyParser.json());\\napp.use(cookieParser('the-immortal-coils')); // app.use(logger('dev'));\\n\\napp.use(express.json());\\napp.use(express.urlencoded({\\n extended: false\\n}));\\napp.use(cookieParser()); // app.use(express.static('build'));\\n\\napp.use(express.static(path.join(__dirname, 'build')));\\nvar url = process.env.mongoUrl;\\n\\nif (process.env.NODE_ENV === 'test') {\\n url = process.env.testMongoUrl;\\n}\\n\\nmongoose.connect(url, {\\n useNewUrlParser: true,\\n useCreateIndex: true,\\n useUnifiedTopology: true\\n}).then(db => {}, err => {\\n if (err) {\\n console.log('👺 Error connecting to MongoDB');\\n } else {\\n console.log('✅ Connected to MongoDB');\\n }\\n});\\napp.use('/users', userRouter);\\napp.use('/employees', employeeRouter);\\napp.use('/places', placeRouter);\\napp.use('/schedules', scheduleRouter);\\napp.use('/tourists', touristRouter);\\napp.use('/dashboard', dashboardRouter); // catch 404 and forward to error handler\\n\\napp.use(function (req, res, next) {\\n next(createError(404));\\n}); // error handler\\n\\napp.use(function (err, req, res, next) {\\n // set locals, only providing error in development\\n res.locals.message = err.message;\\n res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page\\n\\n res.status(err.status || 500);\\n res.render('error');\\n});\\nmodule.exports = app;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJjcmVhdGVFcnJvciIsInJlcXVpcmUiLCJleHByZXNzIiwiY29ycyIsInBhdGgiLCJib2R5UGFyc2VyIiwiZXhwcmVzc1ZhbGlkYXRvciIsInNlc3Npb24iLCJGaWxlU3RvcmUiLCJjb29raWVQYXJzZXIiLCJsb2dnZXIiLCJwYXNzcG9ydCIsIm1vbmdvb3NlIiwiY29uZmlnIiwidXNlclJvdXRlciIsImVtcGxveWVlUm91dGVyIiwicGxhY2VSb3V0ZXIiLCJzY2hlZHVsZVJvdXRlciIsInRvdXJpc3RSb3V0ZXIiLCJkYXNoYm9hcmRSb3V0ZXIiLCJhcHAiLCJzZXQiLCJqb2luIiwiX19kaXJuYW1lIiwidXNlIiwiaW5pdGlhbGl6ZSIsImpzb24iLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJzdGF0aWMiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwibW9uZ29VcmwiLCJOT0RFX0VOViIsInRlc3RNb25nb1VybCIsImNvbm5lY3QiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VDcmVhdGVJbmRleCIsInVzZVVuaWZpZWRUb3BvbG9neSIsInRoZW4iLCJkYiIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJyZXEiLCJyZXMiLCJuZXh0IiwibG9jYWxzIiwibWVzc2FnZSIsImVycm9yIiwiZ2V0Iiwic3RhdHVzIiwicmVuZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsV0FBVyxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUF6Qjs7QUFDQSxJQUFJQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLE1BQU1LLGdCQUFnQixHQUFHTCxPQUFPLENBQUMs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a0JWLFVBQWxCO0FBQ0FNLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JULGNBQXRCO0FBQ0FLLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFNBQVIsRUFBbUJSLFdBQW5CO0FBQ0FJLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JQLGNBQXRCO0FBQ0FHLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFdBQVIsRUFBcUJOLGFBQXJCO0FBQ0FFLEdBQUcsQ0FBQ0ksR0FBSixDQUFRLFlBQVIsRUFBc0JMLGVBQXRCLEUsQ0FFQTs7QUFDQUMsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVXFCLEdBQVYsRUFBZUMsR0FBZixFQUFvQkMsSUFBcEIsRUFBMEI7QUFDaENBLEVBQUFBLElBQUksQ0FBQy9DLFdBQVcsQ0FBQyxHQUFELENBQVosQ0FBSjtBQUNELENBRkQsRSxDQUlBOztBQUNBb0IsR0FBRyxDQUFDSSxHQUFKLENBQVEsVUFBVWtCLEdBQVYsRUFBZUcsR0FBZixFQUFvQkMsR0FBcEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQ3JDO0FBQ0FELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXQyxPQUFYLEdBQXFCUCxHQUFHLENBQUNPLE9BQXpCO0FBQ0FILEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXRSxLQUFYLEdBQW1CTCxHQUFHLENBQUN6QixHQUFKLENBQVErQixHQUFSLENBQVksS0FBWixNQUF1QixhQUF2QixHQUF1Q1QsR0FBdkMsR0FBNkMsRUFBaEUsQ0FIcUMsQ0FLckM7O0FBQ0FJLEVBQUFBLEdBQUcsQ0FBQ00sTUFBSixDQUFXVixHQUFHLENBQUNVLE1BQUosSUFBYyxHQUF6QjtBQUNBTixFQUFBQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxPQUFYO0FBQ0QsQ0FSRDtBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJuQyxHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBjcmVhdGVFcnJvciA9IHJlcXVpcmUoJ2h0dHAtZXJyb3JzJyk7XHJcbnZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnY29ycycpO1xyXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJylcclxuY29uc3QgZXhwcmVzc1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJylcclxudmFyIHNlc3Npb24gPSByZXF1aXJlKCdleHByZXNzLXNlc3Npb24nKTtcclxudmFyIEZpbGVTdG9yZSA9IHJlcXVpcmUoJ3Nlc3Npb24tZmlsZS1zdG9yZScpKHNlc3Npb24pO1xyXG52YXIgY29va2llUGFyc2VyID0gcmVxdWlyZSgnY29va2llLXBhcnNlcicpO1xyXG52YXIgbG9nZ2VyID0gcmVxdWlyZSgnbW9yZ2FuJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxucmVxdWlyZSgnZG90ZW52JykuY29uZmlnKClcclxuXHJcbnZhciB1c2VyUm91dGVyID0gcmVxdWlyZSgnLi9yb3V0ZXMvdXNlclJvdXRlcicpO1xyXG52YXIgZW1wbG95ZWVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9lbXBsb3llZVJvdXRlcicpO1xyXG52YXIgcGxhY2VSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9wbGFjZVJvdXRlcicpO1xyXG52YXIgc2NoZWR1bGVSb3V0ZXIgPSByZXF1aXJlKCcuL3JvdXRlcy9zY2hlZHVsZVJvdXRlcicpO1xyXG52YXIgdG91cmlzdFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL3RvdXJpc3RSb3V0ZXInKTtcclxudmFyIGRhc2hib2FyZFJvdXRlciA9IHJlcXVpcmUoJy4vcm91dGVzL2Rhc2hib2FyZFJvdXRlcicpO1xyXG5cclxudmFyIGFwcCA9IGV4cHJlc3MoKTtcclxuXHJcbi8vIHZpZXcgZW5naW5lIHNldHVwXHJcbmFwcC5zZXQoJ3ZpZXdzJywgcGF0aC5qb2luKF9fZGlybmFtZSwgJ3ZpZXdzJykpO1xyXG5hcHAuc2V0KCd2aWV3IGVuZ2luZScsICdqYWRlJyk7XHJcbmFwcC51c2UoY29ycygpKTtcclxuYXBwLnVzZShwYXNzcG9ydC5pbml0aWFsaXplKCkpO1xyXG5cclxuYXBwLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigndGhlLWltbW9ydGFsLWNvaWxzJykpO1xyXG4vLyBhcHAudXNlKGxvZ2dlcignZGV2JykpO1xyXG5hcHAudXNlKGV4cHJlc3MuanNvbigpKTtcclxuYXBwLnVzZShleHByZXNzLnVybGVuY29kZWQoeyBleHRlbmRlZDogZmFsc2UgfSkpO1xyXG5hcHAudXNlKGNvb2tpZVBhcnNlcigpKTtcclxuLy8gYXBwLnVzZShleHByZXNzLnN0YXRpYygnYnVpbGQnKSk7XHJcbmFwcC51c2UoZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2J1aWxkJykpKTtcclxuXHJcbnZhciB1cmwgPSBwcm9jZXNzLmVudi5tb25nb1VybDtcclxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcclxuICB1cmwgPSBwcm9jZXNzLmVudi50ZXN0TW9uZ29Vcmw7XHJcbn1cclxubW9uZ29vc2UuY29ubmVjdCh1cmwsIHsgdXNlTmV3VXJsUGFyc2VyOiB0cnVlLCB1c2VDcmVhdGVJbmRleDogdHJ1ZSwgdXNlVW5pZmllZFRvcG9sb2d5OiB0cnVlIH0pLnRoZW4oKGRiKSA9PiB7XHJcbn0sIChlcnIpID0+IHtcclxuICBpZiAoZXJyKSB7XHJcbiAgICBjb25zb2xlLmxvZygn8J+RuiAgRXJyb3IgY29ubmVjdGluZyB0byBNb25nb0RCJyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnNvbGUubG9nKCfinIUgIENvbm5lY3RlZCB0byBNb25nb0RCJyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmFwcC51c2UoJy91c2VycycsIHVzZXJSb3V0ZXIpO1xyXG5hcHAudXNlKCcvZW1wbG95ZWVzJywgZW1wbG95ZWVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvcGxhY2VzJywgcGxhY2VSb3V0ZXIpO1xyXG5hcHAudXNlKCcvc2NoZWR1bGVzJywgc2NoZWR1bGVSb3V0ZXIpO1xyXG5hcHAudXNlKCcvdG91cmlzdHMnLCB0b3VyaXN0Um91dGVyKTtcclxuYXBwLnVzZSgnL2Rhc2hib2FyZCcsIGRhc2hib2FyZFJvdXRlcik7XHJcblxyXG4vLyBjYXRjaCA0MDQgYW5kIGZvcndhcmQgdG8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gIG5leHQoY3JlYXRlRXJyb3IoNDA0KSk7XHJcbn0pO1xyXG5cclxuLy8gZXJyb3IgaGFuZGxlclxyXG5hcHAudXNlKGZ1bmN0aW9uIChlcnIsIHJlcSwgcmVzLCBuZXh0KSB7XHJcbiAgLy8gc2V0IGxvY2Fscywgb25seSBwcm92aWRpbmcgZXJyb3IgaW4gZGV2ZWxvcG1lbnRcclxuICByZXMubG9jYWxzLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcclxuICByZXMubG9jYWxzLmVycm9yID0gcmVxLmFwcC5nZXQoJ2VudicpID09PSAnZGV2ZWxvcG1lbnQnID8gZXJyIDoge307XHJcblxyXG4gIC8vIHJlbmRlciB0aGUgZXJyb3IgcGFnZVxyXG4gIHJlcy5zdGF0dXMoZXJyLnN0YXR1cyB8fCA1MDApO1xyXG4gIHJlcy5yZW5kZXIoJ2Vycm9yJyk7XHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBhcHA7XHJcbiJdfQ==\",\"originalCode\":\"var createError = require('http-errors');\\r\\nvar express = require('express');\\r\\nconst cors = require('cors');\\r\\nvar path = require('path');\\r\\nconst bodyParser = require('body-parser')\\r\\nconst expressValidator = require('express-validator')\\r\\nvar session = require('express-session');\\r\\nvar FileStore = require('session-file-store')(session);\\r\\nvar cookieParser = require('cookie-parser');\\r\\nvar logger = require('morgan');\\r\\nvar passport = require('passport');\\r\\nconst mongoose = require('mongoose');\\r\\nrequire('dotenv').config()\\r\\n\\r\\nvar userRouter = require('./routes/userRouter');\\r\\nvar employeeRouter = require('./routes/employeeRouter');\\r\\nvar placeRouter = require('./routes/placeRouter');\\r\\nvar scheduleRouter = require('./routes/scheduleRouter');\\r\\nvar touristRouter = require('./routes/touristRouter');\\r\\nvar dashboardRouter = require('./routes/dashboardRouter');\\r\\n\\r\\nvar app = express();\\r\\n\\r\\n// view engine setup\\r\\napp.set('views', path.join(__dirname, 'views'));\\r\\napp.set('view engine', 'jade');\\r\\napp.use(cors());\\r\\napp.use(passport.initialize());\\r\\n\\r\\napp.use(bodyParser.json());\\r\\n\\r\\napp.use(cookieParser('the-immortal-coils'));\\r\\n// app.use(logger('dev'));\\r\\napp.use(express.json());\\r\\napp.use(express.urlencoded({ extended: false }));\\r\\napp.use(cookieParser());\\r\\n// app.use(express.static('build'));\\r\\napp.use(express.static(path.join(__dirname, 'build')));\\r\\n\\r\\nvar url = process.env.mongoUrl;\\r\\nif (process.env.NODE_ENV === 'test') {\\r\\n url = process.env.testMongoUrl;\\r\\n}\\r\\nmongoose.connect(url, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true }).then((db) => {\\r\\n}, (err) => {\\r\\n if (err) {\\r\\n console.log('👺 Error connecting to MongoDB');\\r\\n } else {\\r\\n console.log('✅ Connected to MongoDB');\\r\\n }\\r\\n});\\r\\n\\r\\napp.use('/users', userRouter);\\r\\napp.use('/employees', employeeRouter);\\r\\napp.use('/places', placeRouter);\\r\\napp.use('/schedules', scheduleRouter);\\r\\napp.use('/tourists', touristRouter);\\r\\napp.use('/dashboard', dashboardRouter);\\r\\n\\r\\n// catch 404 and forward to error handler\\r\\napp.use(function (req, res, next) {\\r\\n next(createError(404));\\r\\n});\\r\\n\\r\\n// error handler\\r\\napp.use(function (err, req, res, next) {\\r\\n // set locals, only providing error in development\\r\\n res.locals.message = err.message;\\r\\n res.locals.error = req.app.get('env') === 'development' ? err : {};\\r\\n\\r\\n // render the error page\\r\\n res.status(err.status || 500);\\r\\n res.render('error');\\r\\n});\\r\\n\\r\\nmodule.exports = app;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/01/app_010e21b7416079df77678cc6cb70a530.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"1472\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":10626,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":10623,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1632,\"endOffset\":1640,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1642,\"endOffset\":1776,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2049,\"endOffset\":2104,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2133,\"endOffset\":2408,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar userRouter = express.Router();\\n\\nconst bodyParser = require('body-parser');\\n\\nvar upload = require('../controllers/upload');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nvar userController = require('../controllers/userController');\\n\\nconst cors = require('./cors');\\n\\nuserRouter.use(bodyParser.json());\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n});\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\nuserRouter.post('/changepassoword/:id', authenticate.verifyUser, userController.changePassoword);\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\", authenticate.verifyUser, upload.UploadUserImage);\\nuserRouter.get('/logout', authenticate.verifyUser, userController.logout);\\nmodule.exports = userRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJ1c2VyUm91dGVyIiwiUm91dGVyIiwiYm9keVBhcnNlciIsInVwbG9hZCIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidXNlckNvbnRyb2xsZXIiLCJjb3JzIiwidXNlIiwianNvbiIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwicG9zdCIsInNpZ251cEFkbWluIiwibG9naW4iLCJ2ZXJpZnlVc2VyIiwiY2hhbmdlUGFzc293b3JkIiwiVXBsb2FkVXNlckltYWdlIiwiZ2V0IiwibG9nb3V0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFJQyxVQUFVLEdBQUdGLE9BQU8sQ0FBQ0csTUFBUixFQUFqQjs7QUFFQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUNBLElBQUlJLE1BQU0sR0FBR0osT0FBTyxDQUFDLHVCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUssRUFBQUE7QUFBRixJQUFrQkwsT0FBTyxDQUFDLG1CQUFELENBQS9COztBQUNBLElBQUlNLFlBQVksR0FBR04sT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLElBQUlPLGVBQWUsR0FBR1AsT0FBTyxDQUFDLDBCQUFELENBQTdCOztBQUNBLElBQUlRLGNBQWMsR0FBR1IsT0FBTyxDQUFDLCtCQUFELENBQTVCOztBQUNBLE1BQU1TLElBQUksR0FBR1QsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBRUFDLFVBQVUsQ0FBQ1MsR0FBWCxDQUFlUCxVQUFVLENBQUNRLElBQVgsRUFBZjtBQUVBVixVQUFVLENBQUNXLE9BQVgsQ0FBbUIsR0FBbkIsRUFBd0JILElBQUksQ0FBQ0ksZUFBN0IsRUFBOEMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUFwRjtBQUVBZixVQUFVLENBQUNnQixJQUFYLENBQWdCLGVBQWhCLEVBQWlDUixJQUFJLENBQUNJLGVBQXRDLEVBQXVETCxjQUFjLENBQUNVLFdBQXRFO0FBRUFqQixVQUFVLENBQUNnQixJQUFYLENBQWdCLFFBQWhCLEVBQTBCUixJQUFJLENBQUNJLGVBQS9CLEVBQWdETCxjQUFjLENBQUNXLEtBQS9EO0FBRUFsQixVQUFVLENBQUNnQixJQUFYLENBQWdCLHNCQUFoQixFQUF1Q1gsWUFBWSxDQUFDYyxVQUFwRCxFQUFnRVosY0FBYyxDQUFDYSxlQUEvRTtBQUVBcEIsVUFBVSxDQUFDZ0IsSUFBWCxDQUFnQiwyQkFBaEIsRUFBNENYLFlBQVksQ0FBQ2MsVUFBekQsRUFBcUVoQixNQUFNLENBQUNrQixlQUE1RTtBQUVBckIsVUFBVSxDQUFDc0IsR0FBWCxDQUFlLFNBQWYsRUFBeUJqQixZQUFZLENBQUNjLFVBQXRDLEVBQWtEWixjQUFjLENBQUNnQixNQUFqRTtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJ6QixVQUFqQiIsInNvdXJjZXNDb250ZW50IjpbInZhciBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG52YXIgdXNlclJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxudmFyIHVwbG9hZCA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3VwbG9hZCcpO1xyXG5jb25zdCB7IGNoZWNrU2NoZW1hIH0gPSByZXF1aXJlKCdleHByZXNzLXZhbGlkYXRvcicpO1xyXG52YXIgYXV0aGVudGljYXRlID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS9hdXRoZW50aWNhdGUnKTtcclxudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvdmFsaWRhdGlvbicpO1xyXG52YXIgdXNlckNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy91c2VyQ29udHJvbGxlcicpO1xyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcblxyXG51c2VyUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG51c2VyUm91dGVyLm9wdGlvbnMoJyonLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcblxyXG51c2VyUm91dGVyLnBvc3QoJy9zaWdudXAvYWRtaW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIuc2lnbnVwQWRtaW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvbG9naW4nLCBjb3JzLmNvcnNXaXRoT3B0aW9ucywgdXNlckNvbnRyb2xsZXIubG9naW4pO1xyXG5cclxudXNlclJvdXRlci5wb3N0KCcvY2hhbmdlcGFzc293b3JkLzppZCcsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVzZXJDb250cm9sbGVyLmNoYW5nZVBhc3Nvd29yZCk7XHJcblxyXG51c2VyUm91dGVyLnBvc3QoXCIvdXBkYXRlcHJvZmlsZXBpY3R1cmUvOmlkXCIsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHVwbG9hZC5VcGxvYWRVc2VySW1hZ2UpO1xyXG5cclxudXNlclJvdXRlci5nZXQoJy9sb2dvdXQnLGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCB1c2VyQ29udHJvbGxlci5sb2dvdXQpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB1c2VyUm91dGVyO1xyXG4iXX0=\",\"originalCode\":\"var express = require('express');\\r\\nvar userRouter = express.Router();\\r\\n\\r\\nconst bodyParser = require('body-parser');\\r\\nvar upload = require('../controllers/upload');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nvar userController = require('../controllers/userController');\\r\\nconst cors = require('./cors');\\r\\n\\r\\nuserRouter.use(bodyParser.json());\\r\\n\\r\\nuserRouter.options('*', cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n\\r\\nuserRouter.post('/signup/admin', cors.corsWithOptions, userController.signupAdmin);\\r\\n\\r\\nuserRouter.post('/login', cors.corsWithOptions, userController.login);\\r\\n\\r\\nuserRouter.post('/changepassoword/:id',authenticate.verifyUser, userController.changePassoword);\\r\\n\\r\\nuserRouter.post(\\\"/updateprofilepicture/:id\\\",authenticate.verifyUser, upload.UploadUserImage);\\r\\n\\r\\nuserRouter.get('/logout',authenticate.verifyUser, userController.logout);\\r\\n\\r\\nmodule.exports = userRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/a6/userRouter_a6221ff3be20743fe1c0fd1dc9fd8435.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2253\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4566,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4563,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":606,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const sharp = require('sharp');\\n\\nconst uid = require('uid');\\n\\nconst fs = require('fs');\\n\\nconst Users = require('../models/users');\\n\\nconst Places = require('../models/visitingPlaces');\\n\\nconst uploadFile = async (req, res) => {\\n try {\\n await upload(req, res);\\n\\n if (req.file == undefined) {\\n return res.send(`You must select a file.`);\\n }\\n\\n return res.send(`File has been uploaded.`);\\n } catch (error) {\\n return res.send(`Error when trying upload image: ${error}`);\\n }\\n};\\n\\nconst UploadUserImage = async (req, res, next) => {\\n try {\\n const user_id = req.params._id;\\n const user = await Users.findById(user_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/userImages/${imageUrl}`;\\n let previousImagePath = `images/userImages/${user.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'profile.png';\\n }\\n\\n user.image = imageUrl;\\n await user.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nconst uploadPlaceImage = async (req, res, next) => {\\n try {\\n const place_id = req.params._id;\\n const user = await Places.findById(place_id);\\n let imageUrl;\\n\\n if (req.file) {\\n imageUrl = `${uid()}__${req.file.originalname}`;\\n let filename = `images/placeImages/${imageUrl}`;\\n let previousImagePath = `images/placeImages/${place.image}`;\\n const imageExist = fs.existsSync(previousImagePath);\\n\\n if (imageExist) {\\n deleteImage(previousImagePath);\\n }\\n\\n await sharp(req.file.path).rotate().resize(500, 500).toFile(filename);\\n fs.unlink(req.file.path, err => {\\n if (err) {}\\n });\\n } else {\\n imageUrl = 'image.png';\\n }\\n\\n place.image = imageUrl;\\n await place.save();\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'Successfully updated profile picture'\\n });\\n } catch (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating profile picture'\\n });\\n }\\n};\\n\\nexports.UploadUserImage = UploadUserImage;\\nexports.uploadFile = uploadFile;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVwbG9hZC5qcyJdLCJuYW1lcyI6WyJzaGFycCIsInJlcXVpcmUiLCJ1aWQiLCJmcyIsIlVzZXJzIiwiUGxhY2VzIiwidXBsb2FkRmlsZSIsInJlcSIsInJlcyIsInVwbG9hZCIsImZpbGUiLCJ1bmRlZmluZWQiLCJzZW5kIiwiZXJyb3IiLCJVcGxvYWRVc2VySW1hZ2UiLCJuZXh0IiwidXNlcl9pZCIsInBhcmFtcyIsIl9pZCIsInVzZXIiLCJmaW5kQnlJZCIsImltYWdlVXJsIiwib3JpZ2luYWxuYW1lIiwiZmlsZW5hbWUiLCJwcmV2aW91c0ltYWdlUGF0aCIsImltYWdlIiwiaW1hZ2VFeGlzdCIsImV4aXN0c1N5bmMiLCJkZWxldGVJbWFnZSIsInBhdGgiLCJyb3RhdGUiLCJyZXNpemUiLCJ0b0ZpbGUiLCJ1bmxpbmsiLCJlcnIiLCJzYXZlIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwibWVzc2FnZSIsInVwbG9hZFBsYWNlSW1hZ2UiLCJwbGFjZV9pZCIsInBsYWNlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsT0FBRCxDQUFyQjs7QUFDQSxNQUFNQyxHQUFHLEdBQUdELE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLElBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsS0FBSyxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBckI7O0FBQ0EsTUFBTUksTUFBTSxHQUFHSixPQUFPLENBQUMsMEJBQUQsQ0FBdEI7O0FBRUEsTUFBTUssVUFBVSxHQUFHLE9BQU9DLEdBQVAsRUFBWUMsR0FBWixLQUFvQjtBQUNuQyxNQUFJO0FBQ0EsVUFBTUMsTUFBTSxDQUFDRixHQUFELEVBQU1DLEdBQU4sQ0FBWjs7QUFFQSxRQUFJRCxHQUFHLENBQUNHLElBQUosSUFBWUMsU0FBaEIsRUFBMkI7QUFDdkIsYUFBT0gsR0FBRyxDQUFDSSxJQUFK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QUFkLEVBQThCLGtCQUE5QjtBQUNBN0IsSUFBQUEsR0FBRyxDQUFDOEIsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCQyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNIO0FBQ0osQ0F6Q0Q7O0FBMkNBSSxPQUFPLENBQUM5QixlQUFSLEdBQTBCQSxlQUExQjtBQUNBOEIsT0FBTyxDQUFDdEMsVUFBUixHQUFxQkEsVUFBckIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzaGFycCA9IHJlcXVpcmUoJ3NoYXJwJyk7XHJcbmNvbnN0IHVpZCA9IHJlcXVpcmUoJ3VpZCcpO1xyXG5jb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XHJcbmNvbnN0IFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFBsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpXHJcblxyXG5jb25zdCB1cGxvYWRGaWxlID0gYXN5bmMgKHJlcSwgcmVzKSA9PiB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHVwbG9hZChyZXEsIHJlcyk7XHJcblxyXG4gICAgICAgIGlmIChyZXEuZmlsZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBZb3UgbXVzdCBzZWxlY3QgYSBmaWxlLmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlcy5zZW5kKGBGaWxlIGhhcyBiZWVuIHVwbG9hZGVkLmApO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICByZXR1cm4gcmVzLnNlbmQoYEVycm9yIHdoZW4gdHJ5aW5nIHVwbG9hZCBpbWFnZTogJHtlcnJvcn1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IFVwbG9hZFVzZXJJbWFnZSA9IGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBjb25zdCB1c2VyX2lkID0gcmVxLnBhcmFtcy5faWQ7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IGF3YWl0IFVzZXJzLmZpbmRCeUlkKHVzZXJfaWQpO1xyXG5cclxuICAgICAgICBsZXQgaW1hZ2VVcmw7XHJcbiAgICAgICAgaWYgKHJlcS5maWxlKSB7XHJcbiAgICAgICAgICAgIGltYWdlVXJsID0gYCR7dWlkKCl9X18ke3JlcS5maWxlLm9yaWdpbmFsbmFtZX1gO1xyXG4gICAgICAgICAgICBsZXQgZmlsZW5hbWUgPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHtpbWFnZVVybH1gO1xyXG4gICAgICAgICAgICBsZXQgcHJldmlvdXNJbWFnZVBhdGggPSBgaW1hZ2VzL3VzZXJJbWFnZXMvJHt1c2VyLmltYWdlfWA7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpbWFnZUV4aXN0ID0gZnMuZXhpc3RzU3luYyhwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIGlmIChpbWFnZUV4aXN0KSB7XHJcbiAgICAgICAgICAgICAgICBkZWxldGVJbWFnZShwcmV2aW91c0ltYWdlUGF0aCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYXdhaXQgc2hhcnAocmVxLmZpbGUucGF0aClcclxuICAgICAgICAgICAgICAgIC5yb3RhdGUoKVxyXG4gICAgICAgICAgICAgICAgLnJlc2l6ZSg1MDAsIDUwMClcclxuICAgICAgICAgICAgICAgIC50b0ZpbGUoZmlsZW5hbWUpO1xyXG5cclxuICAgICAgICAgICAgZnMudW5saW5rKHJlcS5maWxlLnBhdGgsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9ICdwcm9maWxlLnBuZyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB1c2VyLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgdXNlci5zYXZlKCk7XHJcblxyXG5cclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ1N1Y2Nlc3NmdWxseSB1cGRhdGVkIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcblxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgdXBkYXRpbmcgcHJvZmlsZSBwaWN0dXJlJyB9KTtcclxuICAgIH1cclxufTtcclxuXHJcbmNvbnN0IHVwbG9hZFBsYWNlSW1hZ2UgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfaWQgPSByZXEucGFyYW1zLl9pZDtcclxuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgUGxhY2VzLmZpbmRCeUlkKHBsYWNlX2lkKTtcclxuXHJcbiAgICAgICAgbGV0IGltYWdlVXJsO1xyXG4gICAgICAgIGlmIChyZXEuZmlsZSkge1xyXG4gICAgICAgICAgICBpbWFnZVVybCA9IGAke3VpZCgpfV9fJHtyZXEuZmlsZS5vcmlnaW5hbG5hbWV9YDtcclxuICAgICAgICAgICAgbGV0IGZpbGVuYW1lID0gYGltYWdlcy9wbGFjZUltYWdlcy8ke2ltYWdlVXJsfWA7XHJcbiAgICAgICAgICAgIGxldCBwcmV2aW91c0ltYWdlUGF0aCA9IGBpbWFnZXMvcGxhY2VJbWFnZXMvJHtwbGFjZS5pbWFnZX1gO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaW1hZ2VFeGlzdCA9IGZzLmV4aXN0c1N5bmMocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICBpZiAoaW1hZ2VFeGlzdCkge1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlSW1hZ2UocHJldmlvdXNJbWFnZVBhdGgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGF3YWl0IHNoYXJwKHJlcS5maWxlLnBhdGgpXHJcbiAgICAgICAgICAgICAgICAucm90YXRlKClcclxuICAgICAgICAgICAgICAgIC5yZXNpemUoNTAwLCA1MDApXHJcbiAgICAgICAgICAgICAgICAudG9GaWxlKGZpbGVuYW1lKTtcclxuXHJcbiAgICAgICAgICAgIGZzLnVubGluayhyZXEuZmlsZS5wYXRoLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaW1hZ2VVcmwgPSAnaW1hZ2UucG5nJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBsYWNlLmltYWdlID0gaW1hZ2VVcmw7XHJcbiAgICAgICAgYXdhaXQgcGxhY2Uuc2F2ZSgpO1xyXG5cclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2U6ICdTdWNjZXNzZnVsbHkgdXBkYXRlZCBwcm9maWxlIHBpY3R1cmUnIH0pO1xyXG5cclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIHByb2ZpbGUgcGljdHVyZScgfSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnRzLlVwbG9hZFVzZXJJbWFnZSA9IFVwbG9hZFVzZXJJbWFnZTtcclxuZXhwb3J0cy51cGxvYWRGaWxlID0gdXBsb2FkRmlsZTsiXX0=\",\"originalCode\":\"const sharp = require('sharp');\\r\\nconst uid = require('uid');\\r\\nconst fs = require('fs');\\r\\nconst Users = require('../models/users');\\r\\nconst Places = require('../models/visitingPlaces')\\r\\n\\r\\nconst uploadFile = async (req, res) => {\\r\\n try {\\r\\n await upload(req, res);\\r\\n\\r\\n if (req.file == undefined) {\\r\\n return res.send(`You must select a file.`);\\r\\n }\\r\\n\\r\\n return res.send(`File has been uploaded.`);\\r\\n } catch (error) {\\r\\n return res.send(`Error when trying upload image: ${error}`);\\r\\n }\\r\\n};\\r\\n\\r\\nconst UploadUserImage = async (req, res, next) => {\\r\\n try {\\r\\n const user_id = req.params._id;\\r\\n const user = await Users.findById(user_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/userImages/${imageUrl}`;\\r\\n let previousImagePath = `images/userImages/${user.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'profile.png';\\r\\n }\\r\\n\\r\\n user.image = imageUrl;\\r\\n await user.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nconst uploadPlaceImage = async (req, res, next) => {\\r\\n try {\\r\\n const place_id = req.params._id;\\r\\n const user = await Places.findById(place_id);\\r\\n\\r\\n let imageUrl;\\r\\n if (req.file) {\\r\\n imageUrl = `${uid()}__${req.file.originalname}`;\\r\\n let filename = `images/placeImages/${imageUrl}`;\\r\\n let previousImagePath = `images/placeImages/${place.image}`;\\r\\n\\r\\n const imageExist = fs.existsSync(previousImagePath);\\r\\n if (imageExist) {\\r\\n deleteImage(previousImagePath);\\r\\n }\\r\\n await sharp(req.file.path)\\r\\n .rotate()\\r\\n .resize(500, 500)\\r\\n .toFile(filename);\\r\\n\\r\\n fs.unlink(req.file.path, (err) => {\\r\\n if (err) {\\r\\n }\\r\\n })\\r\\n } else {\\r\\n imageUrl = 'image.png';\\r\\n }\\r\\n\\r\\n place.image = imageUrl;\\r\\n await place.save();\\r\\n\\r\\n\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'Successfully updated profile picture' });\\r\\n\\r\\n } catch (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating profile picture' });\\r\\n }\\r\\n};\\r\\n\\r\\nexports.UploadUserImage = UploadUserImage;\\r\\nexports.uploadFile = uploadFile;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/70/upload_70c590d2bd713c9562e3916387ba4116.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2254\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\upload.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":12791,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":12788,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"uploadFile\",\"ranges\":[{\"startOffset\":293,\"endOffset\":580,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"UploadUserImage\",\"ranges\":[{\"startOffset\":607,\"endOffset\":1704,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"uploadPlaceImage\",\"ranges\":[{\"startOffset\":1732,\"endOffset\":2835,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var mongoose = require('mongoose');\\n\\nvar Schema = mongoose.Schema;\\n\\nvar passportLocalMongoose = require('passport-local-mongoose');\\n\\nvar User = new Schema({\\n firstname: {\\n type: String,\\n required: true\\n },\\n lastname: {\\n type: String,\\n required: true\\n },\\n email: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n mobile: {\\n type: String\\n },\\n role: {\\n type: String,\\n default: \\\"user\\\",\\n enum: ['user', 'moderater', 'admin']\\n },\\n image: {\\n type: String\\n },\\n suite: {\\n type: String,\\n enum: ['gold', 'luxury', 'platinum']\\n },\\n rommnumber: {\\n type: String\\n },\\n userstate: {\\n type: String,\\n default: \\\"in\\\",\\n enum: ['in', 'out']\\n }\\n}, {\\n timestamps: true\\n});\\nUser.plugin(passportLocalMongoose);\\nUser.index({\\n '$**': 'text'\\n});\\nvar Users = mongoose.model('User', User);\\nmodule.exports = Users;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBhc3Nwb3J0TG9jYWxNb25nb29zZSIsIlVzZXIiLCJmaXJzdG5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwicmVxdWlyZWQiLCJsYXN0bmFtZSIsImVtYWlsIiwidW5pcXVlIiwibW9iaWxlIiwicm9sZSIsImRlZmF1bHQiLCJlbnVtIiwiaW1hZ2UiLCJzdWl0ZSIsInJvbW1udW1iZXIiLCJ1c2Vyc3RhdGUiLCJ0aW1lc3RhbXBzIiwicGx1Z2luIiwiaW5kZXgiLCJVc2VycyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBdEI7O0FBRUEsSUFBSUMscUJBQXFCLEdBQUdGLE9BQU8sQ0FBQyx5QkFBRCxDQUFuQzs7QUFFQSxJQUFJRyxJQUFJLEdBQUcsSUFBSUYsTUFBSixDQUFXO0FBQ2xCRyxFQUFBQSxTQUFTLEVBQUU7QUFDUEMsSUFBQUEsSUFBSSxFQUFFQyxNQURDO0FBRVBDLElBQUFBLFFBQVEsRUFBRTtBQUZILEdBRE87QUFLbEJDLEVBQUFBLFFBQVEsRUFBRTtBQUNOSCxJQUFBQSxJQUFJLEVBQUVDLE1BREE7QUFFTkMsSUFBQUEsUUFBUSxFQUFFO0FBRkosR0FMUTtBQVNsQkUsRUFBQUEsS0FBSyxFQUFFO0FBQ0hKLElBQUFBLElBQUksRUFBRUMsTUFESDtBQUVIQyxJQUFBQSxRQUFRLEVBQUUsSUFGUDtBQUdIRyxJQUFBQSxNQUFNLEVBQUU7QUFITCxHQVRXO0FBY2xCQyxFQUFBQSxNQUFNLEVBQUM7QUFDSE4sSUFBQUEsSUFBSSxFQUFFQztBQURILEdBZFc7QUFpQmxCTSxFQUFBQSxJQUFJLEVBQ0o7QUFDSVAsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlPLElBQUFBLE9BQU8sRUFBRSxNQUZiO0FBR0lDLElBQUFBLElBQUksRUFBQyxDQUFDLE1BQUQsRUFBUSxXQUFSLEVBQW9CLE9BQXBCO0FBSFQsR0FsQmtCO0FBdUJsQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0hWLElBQUFBLElBQUksRUFBRUM7QUFESCxHQXZCVztBQTBCbEJVLEVBQUFBLEtBQUssRUFBQztBQUNGWCxJQUFBQSxJQUFJLEVBQUVDLE1BREo7QUFFRlEsSUFBQUEsSUFBSSxFQUFDLENBQUMsTUFBRCxFQUFRLFFBQVIsRUFBaUIsVUFBakI7QUFGSCxHQTFCWTtBQThCbEJHLEVBQUFBLFVBQVUsRUFBQztBQUNQWixJQUFBQSxJQUFJLEVBQUVDO0FBREMsR0E5Qk87QUFpQ2xCWSxFQUFBQSxTQUFTLEVBQUM7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5PLElBQUFBLE9BQU8sRUFBRSxJQUZIO0FBR05DLElBQUFBLElBQUksRUFBQyxDQUFDLElBQUQsRUFBTSxLQUFOO0FBSEM7QUFqQ1EsQ0FBWCxFQXNDUjtBQUNDSyxFQUFBQSxVQUFVLEVBQUU7QUFEYixDQXRDUSxDQUFYO0FBMENBaEIsSUFBSSxDQUFDaUIsTUFBTCxDQUFZbEIscUJBQVo7QUFDQUMsSUFBSSxDQUFDa0IsS0FBTCxDQUFXO0FBQUMsU0FBTTtBQUFQLENBQVg7QUFDQSxJQUFJQyxLQUFLLEdBQUd2QixRQUFRLENBQUN3QixLQUFULENBQWUsTUFBZixFQUF1QnBCLElBQXZCLENBQVo7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsS0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG52YXIgU2NoZW1hID0gbW9uZ29vc2UuU2NoZW1hO1xyXG5cclxudmFyIHBhc3Nwb3J0TG9jYWxNb25nb29zZSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWxvY2FsLW1vbmdvb3NlJyk7XHJcblxyXG52YXIgVXNlciA9IG5ldyBTY2hlbWEoe1xyXG4gICAgZmlyc3RuYW1lOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFzdG5hbWU6IHtcclxuICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZ1xyXG4gICAgfSxcclxuICAgIHJvbGU6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwidXNlclwiLFxyXG4gICAgICAgIGVudW06Wyd1c2VyJywnbW9kZXJhdGVyJywnYWRtaW4nXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nXHJcbiAgICB9LFxyXG4gICAgc3VpdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOlsnZ29sZCcsJ2x1eHVyeScsJ3BsYXRpbnVtJ11cclxuICAgIH0sXHJcbiAgICByb21tbnVtYmVyOntcclxuICAgICAgICB0eXBlOiBTdHJpbmdcclxuICAgIH0sXHJcbiAgICB1c2Vyc3RhdGU6e1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBkZWZhdWx0OiBcImluXCIsXHJcbiAgICAgICAgZW51bTpbJ2luJywnb3V0J11cclxuICAgIH1cclxufSwge1xyXG4gICAgdGltZXN0YW1wczogdHJ1ZVxyXG59KTtcclxuXHJcblVzZXIucGx1Z2luKHBhc3Nwb3J0TG9jYWxNb25nb29zZSk7XHJcblVzZXIuaW5kZXgoeyckKionOid0ZXh0J30pO1xyXG52YXIgVXNlcnMgPSBtb25nb29zZS5tb2RlbCgnVXNlcicsIFVzZXIpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyczsiXX0=\",\"originalCode\":\"var mongoose = require('mongoose');\\r\\nvar Schema = mongoose.Schema;\\r\\n\\r\\nvar passportLocalMongoose = require('passport-local-mongoose');\\r\\n\\r\\nvar User = new Schema({\\r\\n firstname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n lastname: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n email: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n mobile:{\\r\\n type: String\\r\\n },\\r\\n role:\\r\\n {\\r\\n type: String,\\r\\n default: \\\"user\\\",\\r\\n enum:['user','moderater','admin']\\r\\n },\\r\\n image: {\\r\\n type: String\\r\\n },\\r\\n suite:{\\r\\n type: String,\\r\\n enum:['gold','luxury','platinum']\\r\\n },\\r\\n rommnumber:{\\r\\n type: String\\r\\n },\\r\\n userstate:{\\r\\n type: String,\\r\\n default: \\\"in\\\",\\r\\n enum:['in','out']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nUser.plugin(passportLocalMongoose);\\r\\nUser.index({'$**':'text'});\\r\\nvar Users = mongoose.model('User', User);\\r\\n\\r\\nmodule.exports = Users;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fa/users_fa250a82bd410ffb1909f920e93eed19.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2324\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4633,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4630,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\nconst pointSchema = new Schema({\\n type: {\\n type: String,\\n enum: ['Point'],\\n required: true,\\n default: 'Point'\\n },\\n coordinates: {\\n type: [Number],\\n required: true\\n }\\n});\\nconst placeSchema = new Schema({\\n name: {\\n type: String,\\n required: true,\\n unique: true\\n },\\n description: {\\n type: String,\\n required: true\\n },\\n location: {\\n type: pointSchema,\\n index: '2dsphere',\\n required: true\\n },\\n distance: {\\n type: String,\\n required: true\\n },\\n timeToReach: {\\n type: String,\\n required: true\\n },\\n image: {\\n type: String\\n },\\n travellingMethods: [{\\n type: String,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }]\\n}, {\\n timestamps: true\\n});\\nplaceSchema.index({\\n '$**': 'text'\\n});\\nvar Places = mongoose.model('Place', placeSchema);\\nmodule.exports = Places;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpc2l0aW5nUGxhY2VzLmpzIl0sIm5hbWVzIjpbIm1vbmdvb3NlIiwicmVxdWlyZSIsIlNjaGVtYSIsInBvaW50U2NoZW1hIiwidHlwZSIsIlN0cmluZyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJjb29yZGluYXRlcyIsIk51bWJlciIsInBsYWNlU2NoZW1hIiwibmFtZSIsInVuaXF1ZSIsImRlc2NyaXB0aW9uIiwibG9jYXRpb24iLCJpbmRleCIsImRpc3RhbmNlIiwidGltZVRvUmVhY2giLCJpbWFnZSIsInRyYXZlbGxpbmdNZXRob2RzIiwidGltZXN0YW1wcyIsIlBsYWNlcyIsIm1vZGVsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0UsTUFBeEI7QUFFQSxNQUFNQyxXQUFXLEdBQUcsSUFBSUQsTUFBSixDQUFXO0FBQzNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDRkEsSUFBQUEsSUFBSSxFQUFFQyxNQURKO0FBRUZDLElBQUFBLElBQUksRUFBRSxDQUFDLE9BQUQsQ0FGSjtBQUdGQyxJQUFBQSxRQUFRLEVBQUUsSUFIUjtBQUlGQyxJQUFBQSxPQUFPLEVBQUU7QUFKUCxHQURxQjtBQU8zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RMLElBQUFBLElBQUksRUFBRSxDQUFDTSxNQUFELENBREc7QUFFVEgsSUFBQUEsUUFBUSxFQUFFO0FBRkQ7QUFQYyxDQUFYLENBQXBCO0FBYUEsTUFBTUksV0FBVyxHQUFHLElBQUlULE1BQUosQ0FBVztBQUMzQlUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZSLElBQUFBLElBQUksRUFBRUMsTUFESjtBQUVGRSxJQUFBQSxRQUFRLEVBQUUsSUFGUjtBQUdGTSxJQUFBQSxNQUFNLEVBQUU7QUFITixHQURxQjtBQU0zQkMsRUFBQUEsV0FBVyxFQUFFO0FBQ1RWLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQU5jO0FBVTNCUSxFQUFBQSxRQUFRLEVBQUU7QUFDTlgsSUFBQUEsSUFBSSxFQUFFRCxXQURBO0FBRU5hLElBQUFBLEtBQUssRUFBRSxVQUZEO0FBR05ULElBQUFBLFFBQVEsRUFBRTtBQUhKLEdBVmlCO0FBZTNCVSxFQUFBQSxRQUFRLEVBQUU7QUFDTmIsSUFBQUEsSUFBSSxFQUFFQyxNQURBO0FBRU5FLElBQUFBLFFBQVEsRUFBRTtBQUZKLEdBZmlCO0FBbUIzQlcsRUFBQUEsV0FBVyxFQUFFO0FBQ1RkLElBQUFBLElBQUksRUFBRUMsTUFERztBQUVURSxJQUFBQSxRQUFRLEVBQUU7QUFGRCxHQW5CYztBQXVCM0JZLEVBQUFBLEtBQUssRUFDTDtBQUNJZixJQUFBQSxJQUFJLEVBQUVDO0FBRFYsR0F4QjJCO0FBMkIzQmUsRUFBQUEsaUJBQWlCLEVBQUUsQ0FDZjtBQUNJaEIsSUFBQUEsSUFBSSxFQUFFQyxNQURWO0FBRUlDLElBQUFBLElBQUksRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QztBQUZWLEdBRGU7QUEzQlEsQ0FBWCxFQWlDakI7QUFDQ2UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0FqQ2lCLENBQXBCO0FBcUNBVixXQUFXLENBQUNLLEtBQVosQ0FBa0I7QUFBRSxTQUFPO0FBQVQsQ0FBbEI7QUFDQSxJQUFJTSxNQUFNLEdBQUd0QixRQUFRLENBQUN1QixLQUFULENBQWUsT0FBZixFQUF3QlosV0FBeEIsQ0FBYjtBQUVBYSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9uZ29vc2UgPSByZXF1aXJlKCdtb25nb29zZScpO1xyXG5jb25zdCBTY2hlbWEgPSBtb25nb29zZS5TY2hlbWE7XHJcblxyXG5jb25zdCBwb2ludFNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgdHlwZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgZGVmYXVsdDogJ1BvaW50J1xyXG4gICAgfSxcclxuICAgIGNvb3JkaW5hdGVzOiB7XHJcbiAgICAgICAgdHlwZTogW051bWJlcl0sXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBwbGFjZVNjaGVtYSA9IG5ldyBTY2hlbWEoe1xyXG4gICAgbmFtZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICB1bmlxdWU6IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgdHlwZTogcG9pbnRTY2hlbWEsXHJcbiAgICAgICAgaW5kZXg6ICcyZHNwaGVyZScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBkaXN0YW5jZToge1xyXG4gICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHRpbWVUb1JlYWNoOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgaW1hZ2U6XHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgfSxcclxuICAgIHRyYXZlbGxpbmdNZXRob2RzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59LCB7XHJcbiAgICB0aW1lc3RhbXBzOiB0cnVlXHJcbn0pO1xyXG5cclxucGxhY2VTY2hlbWEuaW5kZXgoeyAnJCoqJzogJ3RleHQnIH0pO1xyXG52YXIgUGxhY2VzID0gbW9uZ29vc2UubW9kZWwoJ1BsYWNlJywgcGxhY2VTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\n\\r\\nconst pointSchema = new Schema({\\r\\n type: {\\r\\n type: String,\\r\\n enum: ['Point'],\\r\\n required: true,\\r\\n default: 'Point'\\r\\n },\\r\\n coordinates: {\\r\\n type: [Number],\\r\\n required: true\\r\\n }\\r\\n});\\r\\n\\r\\nconst placeSchema = new Schema({\\r\\n name: {\\r\\n type: String,\\r\\n required: true,\\r\\n unique: true\\r\\n },\\r\\n description: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n location: {\\r\\n type: pointSchema,\\r\\n index: '2dsphere',\\r\\n required: true\\r\\n },\\r\\n distance: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n timeToReach: {\\r\\n type: String,\\r\\n required: true\\r\\n },\\r\\n image:\\r\\n {\\r\\n type: String,\\r\\n },\\r\\n travellingMethods: [\\r\\n {\\r\\n type: String,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n ]\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nplaceSchema.index({ '$**': 'text' });\\r\\nvar Places = mongoose.model('Place', placeSchema);\\r\\n\\r\\nmodule.exports = Places;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/c4/visitingPlaces_c4ccc91c117df8c4aeada72a82534688.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2335\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4920,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4917,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var passport = require('passport');\\n\\nvar LocalStrategy = require('passport-local').Strategy;\\n\\nvar User = require('../models/users');\\n\\nvar JwtStrategy = require('passport-jwt').Strategy;\\n\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\n\\nvar jwt = require('jsonwebtoken');\\n\\npassport.use(new LocalStrategy(User.authenticate()));\\npassport.serializeUser(User.serializeUser());\\npassport.deserializeUser(User.deserializeUser());\\n\\nexports.getToken = user => {\\n return jwt.sign(user, process.env.secretKey, {\\n expiresIn: 3600\\n });\\n};\\n\\nvar opts = {};\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\nopts.secretOrKey = process.env.secretKey;\\nexports.jwtPassport = passport.use(new JwtStrategy(opts, (jwt_payload, done) => {\\n User.findOne({\\n _id: jwt_payload._id\\n }, (err, user) => {\\n if (err) {\\n return done(err, false);\\n } else if (user) {\\n return done(null, user);\\n } else {\\n return done(null, false);\\n }\\n });\\n}));\\nexports.verifyUser = passport.authenticate('jwt', {\\n session: false\\n});\\n\\nexports.verifyAdmin = (req, res, next) => {\\n if (req.user.role == 'admin') {\\n return next();\\n } else if (req.user.role != 'admin') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Admin Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n\\nexports.verifyModerater = (req, res, next) => {\\n if (req.user.role != 'user') {\\n return next();\\n } else if (req.user.role == 'user') {\\n err = new Error('You are not authorized to perform this operation!');\\n err.status = 403;\\n return next(err);\\n } else {\\n err = new Error('Moderater Verification Failed!');\\n err.status = 500;\\n return next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGhlbnRpY2F0ZS5qcyJdLCJuYW1lcyI6WyJwYXNzcG9ydCIsInJlcXVpcmUiLCJMb2NhbFN0cmF0ZWd5IiwiU3RyYXRlZ3kiLCJVc2VyIiwiSnd0U3RyYXRlZ3kiLCJFeHRyYWN0Snd0Iiwiand0IiwidXNlIiwiYXV0aGVudGljYXRlIiwic2VyaWFsaXplVXNlciIsImRlc2VyaWFsaXplVXNlciIsImV4cG9ydHMiLCJnZXRUb2tlbiIsInVzZXIiLCJzaWduIiwicHJvY2VzcyIsImVudiIsInNlY3JldEtleSIsImV4cGlyZXNJbiIsIm9wdHMiLCJqd3RGcm9tUmVxdWVzdCIsImZyb21BdXRoSGVhZGVyQXNCZWFyZXJUb2tlbiIsInNlY3JldE9yS2V5Iiwiand0UGFzc3BvcnQiLCJqd3RfcGF5bG9hZCIsImRvbmUiLCJmaW5kT25lIiwiX2lkIiwiZXJyIiwidmVyaWZ5VXNlciIsInNlc3Npb24iLCJ2ZXJpZnlBZG1pbiIsInJlcSIsInJlcyIsIm5leHQiLCJyb2xlIiwiRXJyb3IiLCJzdGF0dXMiLCJ2ZXJpZnlNb2RlcmF0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBUCxDQUEwQkUsUUFBOUM7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHSCxPQUFPLENBQUMsaUJBQUQsQ0FBbEI7O0FBRUEsSUFBSUksV0FBVyxHQUFHSixPQUFPLENBQUMsY0FBRCxDQUFQLENBQXdCRSxRQUExQzs7QUFDQSxJQUFJRyxVQUFVLEdBQUdMLE9BQU8sQ0FBQyxjQUFELENBQVAsQ0FBd0JLLFVBQXpDOztBQUNBLElBQUlDLEdBQUcsR0FBR04sT0FBTyxDQUFDLGNBQUQsQ0FBakI7O0FBR0FELFFBQVEsQ0FBQ1EsR0FBVCxDQUFhLElBQUlOLGFBQUosQ0FBa0JFLElBQUksQ0FBQ0ssWUFBTCxFQUFsQixDQUFiO0FBQ0FULFFBQVEsQ0FBQ1UsYUFB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RyxHQUFHLElBQUlRLEtBQUosQ0FBVSxnQ0FBVixDQUFOO0FBQ0FSLElBQUFBLEdBQUcsQ0FBQ1MsTUFBSixHQUFhLEdBQWI7QUFDQSxXQUFPSCxJQUFJLENBQUNOLEdBQUQsQ0FBWDtBQUNIO0FBQ0osQ0FkRCIsInNvdXJjZXNDb250ZW50IjpbInZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBMb2NhbFN0cmF0ZWd5ID0gcmVxdWlyZSgncGFzc3BvcnQtbG9jYWwnKS5TdHJhdGVneTtcclxudmFyIFVzZXIgPSByZXF1aXJlKCcuLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciBKd3RTdHJhdGVneSA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLlN0cmF0ZWd5O1xyXG52YXIgRXh0cmFjdEp3dCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0LWp3dCcpLkV4dHJhY3RKd3Q7XHJcbnZhciBqd3QgPSByZXF1aXJlKCdqc29ud2VidG9rZW4nKTtcclxuXHJcblxyXG5wYXNzcG9ydC51c2UobmV3IExvY2FsU3RyYXRlZ3koVXNlci5hdXRoZW50aWNhdGUoKSkpO1xyXG5wYXNzcG9ydC5zZXJpYWxpemVVc2VyKFVzZXIuc2VyaWFsaXplVXNlcigpKTtcclxucGFzc3BvcnQuZGVzZXJpYWxpemVVc2VyKFVzZXIuZGVzZXJpYWxpemVVc2VyKCkpO1xyXG5cclxuZXhwb3J0cy5nZXRUb2tlbiA9ICh1c2VyKSA9PiB7XHJcbiAgICByZXR1cm4gand0LnNpZ24odXNlciwgcHJvY2Vzcy5lbnYuc2VjcmV0S2V5LFxyXG4gICAgICAgIHsgZXhwaXJlc0luOiAzNjAwIH0pO1xyXG59O1xyXG5cclxudmFyIG9wdHMgPSB7fTtcclxub3B0cy5qd3RGcm9tUmVxdWVzdCA9IEV4dHJhY3RKd3QuZnJvbUF1dGhIZWFkZXJBc0JlYXJlclRva2VuKCk7XHJcbm9wdHMuc2VjcmV0T3JLZXkgPSBwcm9jZXNzLmVudi5zZWNyZXRLZXk7XHJcblxyXG5leHBvcnRzLmp3dFBhc3Nwb3J0ID0gcGFzc3BvcnQudXNlKG5ldyBKd3RTdHJhdGVneShvcHRzLFxyXG4gICAgKGp3dF9wYXlsb2FkLCBkb25lKSA9PiB7XHJcbiAgICAgICAgVXNlci5maW5kT25lKHsgX2lkOiBqd3RfcGF5bG9hZC5faWQgfSwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShlcnIsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZShudWxsLCB1c2VyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkb25lKG51bGwsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSkpO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlVc2VyID0gcGFzc3BvcnQuYXV0aGVudGljYXRlKCdqd3QnLCB7IHNlc3Npb246IGZhbHNlIH0pO1xyXG5cclxuZXhwb3J0cy52ZXJpZnlBZG1pbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ2FkbWluJykge1xyXG4gICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChyZXEudXNlci5yb2xlICE9ICdhZG1pbicpIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBlcnIgPSBuZXcgRXJyb3IoJ0FkbWluIFZlcmlmaWNhdGlvbiBGYWlsZWQhJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDUwMDtcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnZlcmlmeU1vZGVyYXRlciA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgaWYgKHJlcS51c2VyLnJvbGUgIT0gJ3VzZXInKSB7XHJcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHJlcS51c2VyLnJvbGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24hJyk7XHJcbiAgICAgICAgZXJyLnN0YXR1cyA9IDQwMztcclxuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZXJyID0gbmV3IEVycm9yKCdNb2RlcmF0ZXIgVmVyaWZpY2F0aW9uIEZhaWxlZCEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNTAwO1xyXG4gICAgICAgIHJldHVybiBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuIl19\",\"originalCode\":\"var passport = require('passport');\\r\\nvar LocalStrategy = require('passport-local').Strategy;\\r\\nvar User = require('../models/users');\\r\\n\\r\\nvar JwtStrategy = require('passport-jwt').Strategy;\\r\\nvar ExtractJwt = require('passport-jwt').ExtractJwt;\\r\\nvar jwt = require('jsonwebtoken');\\r\\n\\r\\n\\r\\npassport.use(new LocalStrategy(User.authenticate()));\\r\\npassport.serializeUser(User.serializeUser());\\r\\npassport.deserializeUser(User.deserializeUser());\\r\\n\\r\\nexports.getToken = (user) => {\\r\\n return jwt.sign(user, process.env.secretKey,\\r\\n { expiresIn: 3600 });\\r\\n};\\r\\n\\r\\nvar opts = {};\\r\\nopts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();\\r\\nopts.secretOrKey = process.env.secretKey;\\r\\n\\r\\nexports.jwtPassport = passport.use(new JwtStrategy(opts,\\r\\n (jwt_payload, done) => {\\r\\n User.findOne({ _id: jwt_payload._id }, (err, user) => {\\r\\n if (err) {\\r\\n return done(err, false);\\r\\n }\\r\\n else if (user) {\\r\\n return done(null, user);\\r\\n }\\r\\n else {\\r\\n return done(null, false);\\r\\n }\\r\\n });\\r\\n }));\\r\\n\\r\\nexports.verifyUser = passport.authenticate('jwt', { session: false });\\r\\n\\r\\nexports.verifyAdmin = (req, res, next) => {\\r\\n if (req.user.role == 'admin') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role != 'admin') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Admin Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\\r\\nexports.verifyModerater = (req, res, next) => {\\r\\n if (req.user.role != 'user') {\\r\\n return next();\\r\\n }\\r\\n else if (req.user.role == 'user') {\\r\\n err = new Error('You are not authorized to perform this operation!');\\r\\n err.status = 403;\\r\\n return next(err);\\r\\n }\\r\\n else {\\r\\n err = new Error('Moderater Verification Failed!');\\r\\n err.status = 500;\\r\\n return next(err);\\r\\n }\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/83/authenticate_83ba38785e68b531d6a7c8378dfee9c9.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2336\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":8642,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":8639,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getToken\",\"ranges\":[{\"startOffset\":536,\"endOffset\":622,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1050,\"count\":5}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":875,\"endOffset\":1046,\"count\":5}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyAdmin\",\"ranges\":[{\"startOffset\":1150,\"endOffset\":1495,\"count\":2}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.verifyModerater\",\"ranges\":[{\"startOffset\":1524,\"endOffset\":1871,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var validationRules = {\\n id: {\\n in: ['params', 'query'],\\n errorMessage: 'ID is wrong',\\n isInt: true,\\n toInt: true\\n },\\n name: {\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n description: {\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n distance: {\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 1,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n timeToReach: {\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\n isLength: {\\n options: {\\n min: 2,\\n max: 200\\n }\\n },\\n trim: true\\n },\\n firstname: {\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n lastname: {\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n email: {\\n errorMessage: 'Please enter a valid email address',\\n isEmail: true,\\n trim: true\\n },\\n mobile: {\\n errorMessage: 'Please enter Phone Number in 10 digits',\\n isLength: {\\n options: {\\n min: 10,\\n max: 10\\n }\\n },\\n matches: {\\n options: [/^\\\\d{10}$/],\\n errorMessage: \\\"Please enter digits\\\"\\n },\\n trim: true\\n },\\n password: {\\n isLength: {\\n errorMessage: 'Password should be at least 6 chars long',\\n options: {\\n min: 6\\n }\\n }\\n },\\n confirm_password: {\\n errorMessage: 'Must have the same value as the password field',\\n custom: {\\n options: (value, {\\n req\\n }) => value === req.body.password\\n }\\n },\\n suite: {\\n errorMessage: 'Please select suite type',\\n isIn: {\\n options: [['gold', 'luxury', 'platinum']]\\n }\\n },\\n roomnumber: {\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\n isLength: {\\n options: {\\n min: 3,\\n max: 50\\n }\\n },\\n trim: true\\n },\\n state: {\\n errorMessage: 'Please select correct state',\\n isIn: {\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]]\\n }\\n },\\n method: {\\n errorMessage: 'Please select correct travelling method',\\n isIn: {\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']]\\n }\\n }\\n};\\nexports.validationRules = validationRules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsidmFsaWRhdGlvblJ1bGVzIiwiaWQiLCJpbiIsImVycm9yTWVzc2FnZSIsImlzSW50IiwidG9JbnQiLCJuYW1lIiwiaXNMZW5ndGgiLCJvcHRpb25zIiwibWluIiwibWF4IiwidHJpbSIsImRlc2NyaXB0aW9uIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImZpcnN0bmFtZSIsImxhc3RuYW1lIiwiZW1haWwiLCJpc0VtYWlsIiwibW9iaWxlIiwibWF0Y2hlcyIsInBhc3N3b3JkIiwiY29uZmlybV9wYXNzd29yZCIsImN1c3RvbSIsInZhbHVlIiwicmVxIiwiYm9keSIsInN1aXRlIiwiaXNJbiIsInJvb21udW1iZXIiLCJzdGF0ZSIsIm1ldGhvZCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLGVBQWUsR0FBRztBQUNsQkMsRUFBQUEsRUFBRSxFQUFFO0FBQ0FDLElBQUFBLEVBQUUsRUFBRSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBREo7QUFFQUMsSUFBQUEsWUFBWSxFQUFFLGFBRmQ7QUFHQUMsSUFBQUEsS0FBSyxFQUFFLElBSFA7QUFJQUMsSUFBQUEsS0FBSyxFQUFFO0FBSlAsR0FEYztBQU9sQkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZILElBQUFBLFlBQVksRUFBRSw4REFEWjtBQUVGSSxJQUFBQSxRQUFRLEVBQUU7QUFDTkMsTUFBQUEsT0FBTyxFQUFFO0FBQUVDLFFBQUFBLEdBQUcsRUFBRSxDQUFQO0FBQVVDLFFBQUFBLEdBQUcsRUFBRTtBQUFmO0FBREgsS0FGUjtBQUtGQyxJQUFBQSxJQUFJLEVBQUU7QUFMSixHQVBZO0FBY2xCQyxFQUFBQSxXQUFXLEVBQUU7QUFDVFQsSUFBQUEsWUFBWSxFQUFFLHNFQURMO0FBRVRJLElBQUFBLFFBQVEsRUFBRTtBQUNOQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsR0FBRyxFQUFFLENBQVA7QUFBVUMsUUFBQUEsR0FBRyxFQUFFO0FBQWY7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RTtBQUFFQyxRQUFBQSxHQUFHLEVBQUUsQ0FBUDtBQUFVQyxRQUFBQSxHQUFHLEVBQUU7QUFBZjtBQURILEtBRkY7QUFLUkMsSUFBQUEsSUFBSSxFQUFFO0FBTEUsR0FuRk07QUEwRmxCbUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0gzQixJQUFBQSxZQUFZLEVBQUUsNkJBRFg7QUFFSHlCLElBQUFBLElBQUksRUFBRTtBQUNGcEIsTUFBQUEsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFELEVBQVEsZUFBUixFQUF5QixVQUF6QixFQUFxQyxXQUFyQyxDQUFEO0FBRFA7QUFGSCxHQTFGVztBQWdHbEJ1QixFQUFBQSxNQUFNLEVBQUU7QUFDSjVCLElBQUFBLFlBQVksRUFBRSx5Q0FEVjtBQUVKeUIsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZwQixNQUFBQSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsT0FBZixFQUF3QixjQUF4QixFQUF3QyxNQUF4QyxDQUFEO0FBRFA7QUFGRjtBQWhHVSxDQUF0QjtBQXdHQXdCLE9BQU8sQ0FBQ2hDLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHZhbGlkYXRpb25SdWxlcyA9IHtcclxuICAgIGlkOiB7XHJcbiAgICAgICAgaW46IFsncGFyYW1zJywgJ3F1ZXJ5J10sXHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnSUQgaXMgd3JvbmcnLFxyXG4gICAgICAgIGlzSW50OiB0cnVlLFxyXG4gICAgICAgIHRvSW50OiB0cnVlLFxyXG4gICAgfSxcclxuICAgIG5hbWU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAyLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0Rlc2NyaXB0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGRpc3RhbmNlOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnRGlzdGFuY2Ugc2hvdWxkIGJlIGF0IGxlYXN0IDEgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiAyMDAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAxLCBtYXg6IDIwMCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0cmltOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgdGltZVRvUmVhY2g6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaW1lIFRvIFJlYWNoIHNob3VsZCBiZSBhdCBsZWFzdCAyIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgMjAwIGNoYXJzJyxcclxuICAgICAgICBpc0xlbmd0aDoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiB7IG1pbjogMiwgbWF4OiAyMDAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGZpcnN0bmFtZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0ZpcnN0IE5hbWUgc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcnMgbG9uZyBhbmQgbWF4aW11bSBvZiA1MCBjaGFycycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDMsIG1heDogNTAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhc3RuYW1lOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnTGFzdCBOYW1lIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBlbWFpbDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxyXG4gICAgICAgIGlzRW1haWw6IHRydWUsXHJcbiAgICAgICAgdHJpbTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBtb2JpbGU6IHtcclxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgUGhvbmUgTnVtYmVyIGluIDEwIGRpZ2l0cycsXHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogeyBtaW46IDEwLCBtYXg6IDEwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hdGNoZXM6IHtcclxuICAgICAgICAgICAgb3B0aW9uczogWy9eXFxkezEwfSQvXSxcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiBcIlBsZWFzZSBlbnRlciBkaWdpdHNcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdHJpbTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBhc3N3b3JkOiB7XHJcbiAgICAgICAgaXNMZW5ndGg6IHtcclxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGFzc3dvcmQgc2hvdWxkIGJlIGF0IGxlYXN0IDYgY2hhcnMgbG9uZycsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiA2IH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgY29uZmlybV9wYXNzd29yZDoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ011c3QgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcGFzc3dvcmQgZmllbGQnLFxyXG4gICAgICAgIGN1c3RvbToge1xyXG4gICAgICAgICAgICBvcHRpb25zOiAodmFsdWUsIHsgcmVxIH0pID0+IHZhbHVlID09PSByZXEuYm9keS5wYXNzd29yZFxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdWl0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3Qgc3VpdGUgdHlwZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbWydnb2xkJywgJ2x1eHVyeScsICdwbGF0aW51bSddXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgcm9vbW51bWJlcjoge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Jvb20gTnVtYmVyIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJzIGxvbmcgYW5kIG1heGltdW0gb2YgNTAgY2hhcnMnLFxyXG4gICAgICAgIGlzTGVuZ3RoOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgbWluOiAzLCBtYXg6IDUwIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRyaW06IHRydWVcclxuICAgIH0sXHJcbiAgICBzdGF0ZToge1xyXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgY29ycmVjdCBzdGF0ZScsXHJcbiAgICAgICAgaXNJbjoge1xyXG4gICAgICAgICAgICBvcHRpb25zOiBbW1wibmV3XCIsIFwibm90LWNvbXBsZXRlZFwiLCBcImNhbmNlbGVkXCIsIFwiY29tcGxldGVkXCJdXSxcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kOiB7XHJcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnUGxlYXNlIHNlbGVjdCBjb3JyZWN0IHRyYXZlbGxpbmcgbWV0aG9kJyxcclxuICAgICAgICBpc0luOiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IFtbJ0J1cycsICdDYXInLCAnVHJhaW4nLCAnVGhyZWV3aGVlbGVyJywgJ0Zvb3QnXV0sXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufVxyXG5cclxuZXhwb3J0cy52YWxpZGF0aW9uUnVsZXMgPSB2YWxpZGF0aW9uUnVsZXM7Il19\",\"originalCode\":\"var validationRules = {\\r\\n id: {\\r\\n in: ['params', 'query'],\\r\\n errorMessage: 'ID is wrong',\\r\\n isInt: true,\\r\\n toInt: true,\\r\\n },\\r\\n name: {\\r\\n errorMessage: 'Name should be at least 2 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n description: {\\r\\n errorMessage: 'Description should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n distance: {\\r\\n errorMessage: 'Distance should be at least 1 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 1, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n timeToReach: {\\r\\n errorMessage: 'Time To Reach should be at least 2 chars long and maximum of 200 chars',\\r\\n isLength: {\\r\\n options: { min: 2, max: 200 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n firstname: {\\r\\n errorMessage: 'First Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n lastname: {\\r\\n errorMessage: 'Last Name should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n email: {\\r\\n errorMessage: 'Please enter a valid email address',\\r\\n isEmail: true,\\r\\n trim: true,\\r\\n },\\r\\n mobile: {\\r\\n errorMessage: 'Please enter Phone Number in 10 digits',\\r\\n isLength: {\\r\\n options: { min: 10, max: 10 }\\r\\n },\\r\\n matches: {\\r\\n options: [/^\\\\d{10}$/],\\r\\n errorMessage: \\\"Please enter digits\\\"\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n password: {\\r\\n isLength: {\\r\\n errorMessage: 'Password should be at least 6 chars long',\\r\\n options: { min: 6 }\\r\\n }\\r\\n },\\r\\n confirm_password: {\\r\\n errorMessage: 'Must have the same value as the password field',\\r\\n custom: {\\r\\n options: (value, { req }) => value === req.body.password\\r\\n }\\r\\n },\\r\\n suite: {\\r\\n errorMessage: 'Please select suite type',\\r\\n isIn: {\\r\\n options: [['gold', 'luxury', 'platinum']],\\r\\n }\\r\\n },\\r\\n roomnumber: {\\r\\n errorMessage: 'Room Number should be at least 3 chars long and maximum of 50 chars',\\r\\n isLength: {\\r\\n options: { min: 3, max: 50 }\\r\\n },\\r\\n trim: true\\r\\n },\\r\\n state: {\\r\\n errorMessage: 'Please select correct state',\\r\\n isIn: {\\r\\n options: [[\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]],\\r\\n }\\r\\n },\\r\\n method: {\\r\\n errorMessage: 'Please select correct travelling method',\\r\\n isIn: {\\r\\n options: [['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']],\\r\\n }\\r\\n },\\r\\n}\\r\\n\\r\\nexports.validationRules = validationRules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4b/validation_4b7a8ff68e044daa8c6daa8312a761dc.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2369\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":11520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":11517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"options\",\"ranges\":[{\"startOffset\":2073,\"endOffset\":2134,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"var express = require('express');\\n\\nvar router = express.Router();\\n\\nvar Users = require('../models/users');\\n\\nvar passport = require('passport');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst signupAdmin = (req, res, next) => {\\n var admin = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'admin'\\n };\\n Users.register(new Users(admin), req.body.password, (err, user) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Registration Unsuccessful!'\\n });\\n } else {\\n if (req.body.firstname) user.firstname = req.body.firstname;\\n if (req.body.lastname) user.lastname = req.body.lastname;\\n user.save((err, user) => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Registration Successful!'\\n });\\n });\\n }\\n });\\n};\\n\\nconst login = (req, res, next) => {\\n passport.authenticate('local', (err, user, info) => {\\n if (!user) {\\n res.statusCode = 401;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n status: 'Login Unsuccessful!',\\n err: info\\n });\\n return next(err);\\n }\\n\\n req.logIn(user, err => {\\n var token = authenticate.getToken({\\n _id: req.user._id,\\n role: user.role\\n });\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n status: 'Login Successful!',\\n token: token\\n });\\n });\\n })(req, res, next);\\n};\\n\\nconst changePassoword = (req, res, next) => {\\n var userId = req.params.id;\\n Users.findById(userId).then(function (sanitizedUser) {\\n if (sanitizedUser) {\\n sanitizedUser.setPassword(newPasswordString, function () {\\n sanitizedUser.save();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n message: 'password reset successful'\\n });\\n });\\n } else {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'This user does not exist'\\n });\\n }\\n }, function (err) {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while updating Password'\\n });\\n });\\n};\\n\\nconst logout = (req, res) => {\\n if (req.session) {\\n req.session.destroy();\\n res.clearCookie('session-id');\\n } else {\\n var err = new Error('You are not logged in!');\\n err.status = 403;\\n }\\n};\\n\\nexports.signupAdmin = signupAdmin;\\nexports.login = login;\\nexports.logout = logout;\\nexports.changePassoword = changePassoword;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiVXNlcnMiLCJwYXNzcG9ydCIsImF1dGhlbnRpY2F0ZSIsInNpZ251cEFkbWluIiwicmVxIiwicmVzIiwibmV4dCIsImFkbWluIiwidXNlcm5hbWUiLCJib2R5IiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInBhc3N3b3JkIiwiZXJyIiwidXNlciIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsInN0YXR1cyIsInNhdmUiLCJsb2dpbiIsImluZm8iLCJsb2dJbiIsInRva2VuIiwiZ2V0VG9rZW4iLCJfaWQiLCJjaGFuZ2VQYXNzb3dvcmQiLCJ1c2VySWQiLCJwYXJhbXMiLCJpZCIsImZpbmRCeUlkIiwidGhlbiIsInNhbml0aXplZFVzZXIiLCJzZXRQYXNzd29yZCIsIm5ld1Bhc3N3b3JkU3RyaW5nIiwibWVzc2FnZSIsImxvZ291dCIsInNlc3Npb24iLCJkZXN0cm95IiwiY2xlYXJDb29raWUiLCJFcnJvciIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBckI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBYjs7QUFFQSxJQUFJQyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxpQkFBRCxDQUFuQjs7QUFDQSxJQUFJSSxRQUFRLEdBQUdKLE9BQU8sQ0FBQyxVQUFELENBQXRCOztBQUNBLElBQUlLLFlBQVksR0FBR0wsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUdBLE1BQU1NLFdBQVcsR0FBRyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUNwQyxNQUFJQyxLQUFLLEdBQUc7QUFDUkMsSUFBQUEsUUFBUSxFQUFFSixHQUFHLENBQUNLLElBQUos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LEdBQWlCLEdBQWpCO0FBQ0FiLElBQUFBLEdBQUcsQ0FBQ2MsU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FkLElBQUFBLEdBQUcsQ0FBQ2UsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCa0IsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQWpCRDtBQWtCSCxDQXBCRDs7QUFzQkEsTUFBTUMsTUFBTSxHQUFHLENBQUNwQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUN6QixNQUFJRCxHQUFHLENBQUNxQyxPQUFSLEVBQWlCO0FBQ2JyQyxJQUFBQSxHQUFHLENBQUNxQyxPQUFKLENBQVlDLE9BQVo7QUFDQXJDLElBQUFBLEdBQUcsQ0FBQ3NDLFdBQUosQ0FBZ0IsWUFBaEI7QUFDSCxHQUhELE1BSUs7QUFDRCxRQUFJM0IsR0FBRyxHQUFHLElBQUk0QixLQUFKLENBQVUsd0JBQVYsQ0FBVjtBQUNBNUIsSUFBQUEsR0FBRyxDQUFDTSxNQUFKLEdBQWEsR0FBYjtBQUNIO0FBQ0osQ0FURDs7QUFXQXVCLE9BQU8sQ0FBQzFDLFdBQVIsR0FBc0JBLFdBQXRCO0FBQ0EwQyxPQUFPLENBQUNyQixLQUFSLEdBQWdCQSxLQUFoQjtBQUNBcUIsT0FBTyxDQUFDTCxNQUFSLEdBQWlCQSxNQUFqQjtBQUNBSyxPQUFPLENBQUNmLGVBQVIsR0FBMEJBLGVBQTFCIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGV4cHJlc3MgPSByZXF1aXJlKCdleHByZXNzJyk7XHJcbnZhciByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxudmFyIFVzZXJzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbnZhciBwYXNzcG9ydCA9IHJlcXVpcmUoJ3Bhc3Nwb3J0Jyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG5cclxuXHJcbmNvbnN0IHNpZ251cEFkbWluID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgYWRtaW4gPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIGZpcnN0bmFtZTogcmVxLmJvZHkuZmlyc3RuYW1lLFxyXG4gICAgICAgIGxhc3RuYW1lOiByZXEuYm9keS5sYXN0bmFtZSxcclxuICAgICAgICBlbWFpbDogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgcm9sZTogJ2FkbWluJ1xyXG4gICAgfVxyXG4gICAgVXNlcnMucmVnaXN0ZXIobmV3IFVzZXJzKGFkbWluKSxcclxuICAgICAgICByZXEuYm9keS5wYXNzd29yZCwgKGVyciwgdXNlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdSZWdpc3RyYXRpb24gVW5zdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVxLmJvZHkuZmlyc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIuZmlyc3RuYW1lID0gcmVxLmJvZHkuZmlyc3RuYW1lO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcS5ib2R5Lmxhc3RuYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIubGFzdG5hbWUgPSByZXEuYm9keS5sYXN0bmFtZTtcclxuICAgICAgICAgICAgICAgIHVzZXIuc2F2ZSgoZXJyLCB1c2VyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHN0YXR1czogJ1JlZ2lzdHJhdGlvbiBTdWNjZXNzZnVsIScgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dpbiA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgcGFzc3BvcnQuYXV0aGVudGljYXRlKCdsb2NhbCcsIChlcnIsIHVzZXIsIGluZm8pID0+IHtcclxuXHJcbiAgICAgICAgaWYgKCF1c2VyKSB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAxO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBzdGF0dXM6ICdMb2dpbiBVbnN1Y2Nlc3NmdWwhJywgZXJyOiBpbmZvIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXEubG9nSW4odXNlciwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB2YXIgdG9rZW4gPSBhdXRoZW50aWNhdGUuZ2V0VG9rZW4oeyBfaWQ6IHJlcS51c2VyLl9pZCwgcm9sZTogdXNlci5yb2xlIH0pO1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzdGF0dXM6ICdMb2dpbiBTdWNjZXNzZnVsIScsIHRva2VuOiB0b2tlbiwgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KShyZXEsIHJlcywgbmV4dCk7XHJcbn1cclxuXHJcbmNvbnN0IGNoYW5nZVBhc3Nvd29yZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHVzZXJJZCA9IHJlcS5wYXJhbXMuaWQ7XHJcbiAgICBVc2Vycy5maW5kQnlJZCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHNhbml0aXplZFVzZXIpIHtcclxuICAgICAgICBpZiAoc2FuaXRpemVkVXNlcikge1xyXG4gICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNldFBhc3N3b3JkKG5ld1Bhc3N3b3JkU3RyaW5nLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBzYW5pdGl6ZWRVc2VyLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogJ3Bhc3N3b3JkIHJlc2V0IHN1Y2Nlc3NmdWwnIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ1RoaXMgdXNlciBkb2VzIG5vdCBleGlzdCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgZnVuY3Rpb24gKGVycikge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIHVwZGF0aW5nIFBhc3N3b3JkJyB9KTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBsb2dvdXQgPSAocmVxLCByZXMpID0+IHtcclxuICAgIGlmIChyZXEuc2Vzc2lvbikge1xyXG4gICAgICAgIHJlcS5zZXNzaW9uLmRlc3Ryb3koKTtcclxuICAgICAgICByZXMuY2xlYXJDb29raWUoJ3Nlc3Npb24taWQnKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1lvdSBhcmUgbm90IGxvZ2dlZCBpbiEnKTtcclxuICAgICAgICBlcnIuc3RhdHVzID0gNDAzO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnRzLnNpZ251cEFkbWluID0gc2lnbnVwQWRtaW47XHJcbmV4cG9ydHMubG9naW4gPSBsb2dpbjtcclxuZXhwb3J0cy5sb2dvdXQgPSBsb2dvdXQ7XHJcbmV4cG9ydHMuY2hhbmdlUGFzc293b3JkID0gY2hhbmdlUGFzc293b3JkOyJdfQ==\",\"originalCode\":\"var express = require('express');\\r\\nvar router = express.Router();\\r\\n\\r\\nvar Users = require('../models/users');\\r\\nvar passport = require('passport');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\n\\r\\n\\r\\nconst signupAdmin = (req, res, next) => {\\r\\n var admin = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'admin'\\r\\n }\\r\\n Users.register(new Users(admin),\\r\\n req.body.password, (err, user) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Registration Unsuccessful!' });\\r\\n }\\r\\n else {\\r\\n if (req.body.firstname)\\r\\n user.firstname = req.body.firstname;\\r\\n if (req.body.lastname)\\r\\n user.lastname = req.body.lastname;\\r\\n user.save((err, user) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Registration Successful!' });\\r\\n });\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nconst login = (req, res, next) => {\\r\\n passport.authenticate('local', (err, user, info) => {\\r\\n\\r\\n if (!user) {\\r\\n res.statusCode = 401;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, status: 'Login Unsuccessful!', err: info });\\r\\n return next(err);\\r\\n }\\r\\n req.logIn(user, (err) => {\\r\\n var token = authenticate.getToken({ _id: req.user._id, role: user.role });\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, status: 'Login Successful!', token: token, });\\r\\n });\\r\\n })(req, res, next);\\r\\n}\\r\\n\\r\\nconst changePassoword = (req, res, next) => {\\r\\n var userId = req.params.id;\\r\\n Users.findById(userId).then(function (sanitizedUser) {\\r\\n if (sanitizedUser) {\\r\\n sanitizedUser.setPassword(newPasswordString, function () {\\r\\n sanitizedUser.save();\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, message: 'password reset successful' });\\r\\n });\\r\\n } else {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'This user does not exist' });\\r\\n }\\r\\n }, function (err) {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while updating Password' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst logout = (req, res) => {\\r\\n if (req.session) {\\r\\n req.session.destroy();\\r\\n res.clearCookie('session-id');\\r\\n }\\r\\n else {\\r\\n var err = new Error('You are not logged in!');\\r\\n err.status = 403;\\r\\n }\\r\\n}\\r\\n\\r\\nexports.signupAdmin = signupAdmin;\\r\\nexports.login = login;\\r\\nexports.logout = logout;\\r\\nexports.changePassoword = changePassoword;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1b/userController_1b7f9872a721ffd88b6634cf95f37bee.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2370\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13343,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13340,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":313,\"endOffset\":1156,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":553,\"endOffset\":1152,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":926,\"endOffset\":1140,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"login\",\"ranges\":[{\"startOffset\":1173,\"endOffset\":1848,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1228,\"endOffset\":1828,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1512,\"endOffset\":1822,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"changePassoword\",\"ranges\":[{\"startOffset\":1875,\"endOffset\":2707,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"logout\",\"ranges\":[{\"startOffset\":2725,\"endOffset\":2913,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst cors = require('cors');\\n\\nconst app = express();\\n\\nconst util = require('util');\\n\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\n\\nvar corsOptionsDelegate = (req, callback) => {\\n var corsOptions;\\n\\n if (whitelist.indexOf(req.header('Origin')) !== -1) {\\n corsOptions = {\\n origin: true\\n };\\n } else {\\n corsOptions = {\\n origin: false\\n };\\n }\\n\\n callback(null, corsOptions);\\n}; // if we want to allow all origins\\n\\n\\nexports.cors = cors(); // if we want to allow only the whitelisted origins\\n\\nexports.corsWithOptions = cors(corsOptionsDelegate);\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcnMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJjb3JzIiwiYXBwIiwidXRpbCIsIndoaXRlbGlzdCIsImNvcnNPcHRpb25zRGVsZWdhdGUiLCJyZXEiLCJjYWxsYmFjayIsImNvcnNPcHRpb25zIiwiaW5kZXhPZiIsImhlYWRlciIsIm9yaWdpbiIsImV4cG9ydHMiLCJjb3JzV2l0aE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxHQUFHLEdBQUdILE9BQU8sRUFBbkI7O0FBQ0EsTUFBTUksSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNSSxTQUFTLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQix1QkFBMUIsRUFBbUQsd0JBQW5ELENBQWxCOztBQUNBLElBQUlDLG1CQUFtQixHQUFHLENBQUNDLEdBQUQsRUFBTUMsUUFBTixLQUFtQjtBQUN6QyxNQUFJQyxXQUFKOztBQUNBLE1BQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQkgsR0FBRyxDQUFDSSxNQUFKLENBQVcsUUFBWCxDQUFsQixNQUE0QyxDQUFDLENBQWhELEVBQW1EO0FBQy9DRixJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNILEdBRkQsTUFHSztBQUNESCxJQUFBQSxXQUFXLEdBQUc7QUFBRUcsTUFBQUEsTUFBTSxFQUFFO0FBQVYsS0FBZDtBQUNIOztBQUNESixFQUFBQSxRQUFRLENBQUMsSUFBRCxFQUFPQyxXQUFQLENBQVI7QUFDSCxDQVRELEMsQ0FXQTs7O0FBQ0FJLE9BQU8sQ0FBQ1gsSUFBUixHQUFlQSxJQUFJLEVBQW5CLEMsQ0FFQTs7QUFDQVcsT0FBTyxDQUFDQyxlQUFSLEdBQTBCWixJQUFJLENBQUNJLG1CQUFELENBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgY29ycyA9IHJlcXVpcmUoJ2NvcnMnKTtcclxuY29uc3QgYXBwID0gZXhwcmVzcygpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5cclxuY29uc3Qgd2hpdGVsaXN0ID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDozMDAxJywgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDAnXTtcclxudmFyIGNvcnNPcHRpb25zRGVsZWdhdGUgPSAocmVxLCBjYWxsYmFjaykgPT4ge1xyXG4gICAgdmFyIGNvcnNPcHRpb25zO1xyXG4gICAgaWYod2hpdGVsaXN0LmluZGV4T2YocmVxLmhlYWRlcignT3JpZ2luJykpICE9PSAtMSkge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IHRydWUgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGNvcnNPcHRpb25zID0geyBvcmlnaW46IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICBjYWxsYmFjayhudWxsLCBjb3JzT3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBpZiB3ZSB3YW50IHRvIGFsbG93IGFsbCBvcmlnaW5zXHJcbmV4cG9ydHMuY29ycyA9IGNvcnMoKTtcclxuXHJcbi8vIGlmIHdlIHdhbnQgdG8gYWxsb3cgb25seSB0aGUgd2hpdGVsaXN0ZWQgb3JpZ2luc1xyXG5leHBvcnRzLmNvcnNXaXRoT3B0aW9ucyA9IGNvcnMoY29yc09wdGlvbnNEZWxlZ2F0ZSk7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst cors = require('cors');\\r\\nconst app = express();\\r\\nconst util = require('util');\\r\\n\\r\\nconst whitelist = ['http://localhost:3000', 'http://localhost:3001', 'https://localhost:5000'];\\r\\nvar corsOptionsDelegate = (req, callback) => {\\r\\n var corsOptions;\\r\\n if(whitelist.indexOf(req.header('Origin')) !== -1) {\\r\\n corsOptions = { origin: true };\\r\\n }\\r\\n else {\\r\\n corsOptions = { origin: false };\\r\\n }\\r\\n callback(null, corsOptions);\\r\\n};\\r\\n\\r\\n// if we want to allow all origins\\r\\nexports.cors = cors();\\r\\n\\r\\n// if we want to allow only the whitelisted origins\\r\\nexports.corsWithOptions = cors(corsOptionsDelegate);\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/cors_34beef0e65d7cfb3f2bb7a05fb9de802.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2371\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2982,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2979,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"corsOptionsDelegate\",\"ranges\":[{\"startOffset\":335,\"endOffset\":573,\"count\":7}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst employeeController = require('../controllers/employeeController');\\n\\nconst employeeRouter = express.Router();\\nemployeeRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Employee Routes\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /employees');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\nemployeeRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName); // **********************************************************************************\\n// \\n// Employee Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\nemployeeRouter.route('/:employeeId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\nmodule.exports = employeeRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNoZWNrU2NoZW1hIiwiY29ycyIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsImVtcGxveWVlQ29udHJvbGxlciIsImVtcGxveWVlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwidmVyaWZ5QWRtaW4iLCJnZXRBbGxFbXBsb3llZXMiLCJwb3N0IiwiYWRkRW1wbG95ZWUiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbEVtcGxveWVlcyIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJlbXBsb3llZUlkIiwidXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCIsImRlbGV0ZUFFbXBsb3llZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtBQUFFRSxFQUFBQTtBQUFGLElBQWtCRixPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNBQWMsR0FBR1IsT0FB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cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgZW1wbG95ZWVDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvZW1wbG95ZWVDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBlbXBsb3llZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5lbXBsb3llZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIEVtcGxveWVlIFJvdXRlc1xyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuZW1wbG95ZWVSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgZW1wbG95ZWVDb250cm9sbGVyLmFkZEVtcGxveWVlKVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9lbXBsb3llZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmRlbGV0ZUFsbEVtcGxveWVlcyk7XHJcbmVtcGxveWVlUm91dGVyLnJvdXRlKCcvc2VhcmNoJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBlbXBsb3llZUNvbnRyb2xsZXIuZ2V0QWxsRW1wbG95ZWVzQnlOYW1lKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5lbXBsb3llZVJvdXRlci5yb3V0ZSgnLzplbXBsb3llZUlkJylcclxuICAgIC5vcHRpb25zKGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCAgZW1wbG95ZWVDb250cm9sbGVyLmdldEVtcGxveWVlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvZW1wbG95ZWVzLycgKyByZXEucGFyYW1zLmVtcGxveWVlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIudXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZClcclxuICAgIC5kZWxldGUoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5QWRtaW4sICBlbXBsb3llZUNvbnRyb2xsZXIuZGVsZXRlQUVtcGxveWVlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGVtcGxveWVlUm91dGVyOyJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst employeeController = require('../controllers/employeeController');\\r\\n\\r\\nconst employeeRouter = express.Router();\\r\\n\\r\\nemployeeRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployees)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, authenticate.verifyAdmin, employeeController.addEmployee)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /employees');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAllEmployees);\\r\\nemployeeRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getAllEmployeesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nemployeeRouter.route('/:employeeId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.getEmployeeDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /employees/' + req.params.employeeId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.updateEmployeeDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, employeeController.deleteAEmployeeById);\\r\\n\\r\\nmodule.exports = employeeRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/3b/employeeRouter_3bb83cd3174a28ed34e0f44c133b9b42.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2372\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9455,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9452,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1082,\"endOffset\":1185,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1369,\"endOffset\":1409,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1828,\"endOffset\":1868,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2006,\"endOffset\":2135,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Employees = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Employee Operations \\n// \\n// **********************************************************************************\\n\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\n\\n\\nconst getAllEmployees = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n };\\n Employees.find(query).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllEmployeesByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"moderater\\\"\\n }; // if (req.body.similarTo) {\\n // var searchBy = req.body.similarTo || {}\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\n // }\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"moderater\\\",\\n firstname: {\\n $regex: `${searchBy}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Employees.find(query).sort(sortby).then(employees => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employees: employees\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addEmployee = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n\\n try {\\n Employees.register(new Employees(employee), randomPassword, (err, employee) => {\\n if (err) {\\n throw err;\\n } else {\\n employee.save((err, employee) => {\\n if (err) {\\n throw err;\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: employee.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var err = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllEmployees = (req, res, next) => {\\n Employees.remove({\\n \\\"role\\\": \\\"moderater\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllEmployees = getAllEmployees;\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\nexports.addEmployee = addEmployee;\\nexports.deleteAllEmployees = deleteAllEmployees; // **********************************************************************************\\n// \\n// Employee Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getEmployeeDetailsById = (req, res, next) => {\\n Employees.findById(req.params.employeeId).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst updateEmployeeDetailsById = (req, res, next) => {\\n var employee = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n role: 'moderater'\\n };\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\n $set: employee\\n }, {\\n new: true\\n }).then(employee => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n employee: employee\\n });\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while updating.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nconst deleteAEmployeeById = (req, res, next) => {\\n Employees.findByIdAndRemove(req.params.employeeId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => {\\n var err = new Error(\\\"Error while deletting.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n });\\n};\\n\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\nexports.deleteAEmployeeById = deleteAEmployeeById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtcGxveWVlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJFbXBsb3llZXMiLCJyZXF1aXJlIiwidXRpbHMiLCJnZXRBbGxFbXBsb3llZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsImVtcGxveWVlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbEVtcGxveWVlc0J5TmFtZSIsImJvZHkiLCJzaW1pbGFyVG8iLCJzZWFyY2hCeSIsImZpcnN0bmFtZSIsIiRyZWdleCIsIiRvcHRpb25zIiwic29ydGJ5Iiwic29ydEJ5Iiwic29ydCIsImFkZEVtcGxveWVlIiwicmFuZG9tUGFzc3dvcmQiLCJwYXNzd29yZF9nZW5lcmF0b3IiLCJlbXBsb3llZSIsInVzZXJuYW1lIiwiZW1haWwiLCJsYXN0bmFtZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxFbXBsb3llZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldEVtcGxveWVlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInBhcmFtcyIsImVtcGxveWVlSWQiLCJ1cGRhdGVFbXBsb3llZURldGFpbHNCeUlkIiwiZmluZEJ5SWRBbmRVcGRhdGUiLCIkc2V0IiwibmV3IiwiZGVsZXRlQUVtcGxveWVlQnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixF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QUE5QjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFRixHQUFHLENBQUNFO0FBQS9CLEtBQVQ7QUFDSCxHQVhMO0FBWUgsQ0FiRDs7QUFlQTJCLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNLLHlCQUFSLEdBQW9DQSx5QkFBcEM7QUFDQUwsT0FBTyxDQUFDUyxtQkFBUixHQUE4QkEsbUJBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRW1wbG95ZWVzID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMvdXRpbHMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBnZXQgZGV0YWlscyBvZiB0aGUgYXNzaXN0YW50c1xyXG4gKiBAcGFyYW0geyp9IHJlcSBcclxuICogQHBhcmFtIHsqfSByZXMgXHJcbiAqIEBwYXJhbSB7Kn0gbmV4dCBcclxuICogQHJldHVybnMge2FycmF5fSBsaXN0IG9mIGVtcGxveWVlc1xyXG4gKi9cclxuY29uc3QgZ2V0QWxsRW1wbG95ZWVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiIH07XHJcbiAgICBFbXBsb3llZXMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigoZW1wbG95ZWVzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlczogZW1wbG95ZWVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbEVtcGxveWVlc0J5TmFtZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9O1xyXG4gICAgLy8gaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgLy8gICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgLy8gICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiwgJHRleHQ6IHsgJHNlYXJjaDogc2VhcmNoQnkgfSB9XHJcbiAgICAvLyB9XHJcbiAgICBpZiAocmVxLmJvZHkuc2ltaWxhclRvKSB7XHJcbiAgICAgICAgdmFyIHNlYXJjaEJ5ID0gcmVxLmJvZHkuc2ltaWxhclRvIHx8IHt9XHJcbiAgICAgICAgcXVlcnkgPSB7IFwicm9sZVwiOiBcIm1vZGVyYXRlclwiLCBmaXJzdG5hbWU6IHsgJHJlZ2V4OiBgJHtzZWFyY2hCeX1gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICB2YXIgc29ydGJ5ID0gcmVxLmJvZHkuc29ydEJ5IHx8IHt9O1xyXG4gICAgRW1wbG95ZWVzLmZpbmQocXVlcnkpLnNvcnQoc29ydGJ5KVxyXG4gICAgICAgIC50aGVuKChlbXBsb3llZXMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWVzOiBlbXBsb3llZXMgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZ2V0dGluZyBkYXRhJyB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgYWRkRW1wbG95ZWUgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciBlbXBsb3llZSA9IHtcclxuICAgICAgICB1c2VybmFtZTogcmVxLmJvZHkuZW1haWwsXHJcbiAgICAgICAgZmlyc3RuYW1lOiByZXEuYm9keS5maXJzdG5hbWUsXHJcbiAgICAgICAgbGFzdG5hbWU6IHJlcS5ib2R5Lmxhc3RuYW1lLFxyXG4gICAgICAgIGVtYWlsOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICByb2xlOiAnbW9kZXJhdGVyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBFbXBsb3llZXMucmVnaXN0ZXIobmV3IEVtcGxveWVlcyhlbXBsb3llZSksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCBlbXBsb3llZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGVtcGxveWVlLnNhdmUoKGVyciwgZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtYWlsOiBlbXBsb3llZS5lbWFpbCwgcGFzc3dvcmQ6IHJhbmRvbVBhc3N3b3JkIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxFbXBsb3llZXMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIEVtcGxveWVlcy5yZW1vdmUoeyBcInJvbGVcIjogXCJtb2RlcmF0ZXJcIiB9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsRW1wbG95ZWVzID0gZ2V0QWxsRW1wbG95ZWVzO1xyXG5leHBvcnRzLmdldEFsbEVtcGxveWVlc0J5TmFtZSA9IGdldEFsbEVtcGxveWVlc0J5TmFtZTtcclxuZXhwb3J0cy5hZGRFbXBsb3llZSA9IGFkZEVtcGxveWVlO1xyXG5leHBvcnRzLmRlbGV0ZUFsbEVtcGxveWVlcyA9IGRlbGV0ZUFsbEVtcGxveWVlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBFbXBsb3llZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgRW1wbG95ZWVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuZW1wbG95ZWVJZClcclxuICAgICAgICAudGhlbigoZW1wbG95ZWUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1wbG95ZWU6IGVtcGxveWVlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIGVtcGxveWVlID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIHJvbGU6ICdtb2RlcmF0ZXInXHJcbiAgICB9XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRVcGRhdGUocmVxLnBhcmFtcy5lbXBsb3llZUlkLCB7XHJcbiAgICAgICAgJHNldDogZW1wbG95ZWVcclxuICAgIH0sIHsgbmV3OiB0cnVlIH0pXHJcbiAgICAgICAgLnRoZW4oKGVtcGxveWVlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIGVtcGxveWVlOiBlbXBsb3llZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHVwZGF0aW5nLlwiKTtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBRW1wbG95ZWVCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBFbXBsb3llZXMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy5lbXBsb3llZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIGRlbGV0dGluZy5cIik7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRFbXBsb3llZURldGFpbHNCeUlkID0gZ2V0RW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy51cGRhdGVFbXBsb3llZURldGFpbHNCeUlkID0gdXBkYXRlRW1wbG95ZWVEZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBRW1wbG95ZWVCeUlkID0gZGVsZXRlQUVtcGxveWVlQnlJZDsiXX0=\",\"originalCode\":\"const Employees = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n/**\\r\\n * @description get details of the assistants\\r\\n * @param {*} req \\r\\n * @param {*} res \\r\\n * @param {*} next \\r\\n * @returns {array} list of employees\\r\\n */\\r\\nconst getAllEmployees = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n Employees.find(query)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllEmployeesByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"moderater\\\" };\\r\\n // if (req.body.similarTo) {\\r\\n // var searchBy = req.body.similarTo || {}\\r\\n // query = { \\\"role\\\": \\\"moderater\\\", $text: { $search: searchBy } }\\r\\n // }\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"moderater\\\", firstname: { $regex: `${searchBy}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n var sortby = req.body.sortBy || {};\\r\\n Employees.find(query).sort(sortby)\\r\\n .then((employees) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employees: employees });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addEmployee = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n try {\\r\\n Employees.register(new Employees(employee),\\r\\n randomPassword, (err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n else {\\r\\n employee.save((err, employee) => {\\r\\n if (err) {\\r\\n throw err;\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: employee.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var err = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllEmployees = (req, res, next) => {\\r\\n Employees.remove({ \\\"role\\\": \\\"moderater\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllEmployees = getAllEmployees;\\r\\nexports.getAllEmployeesByName = getAllEmployeesByName;\\r\\nexports.addEmployee = addEmployee;\\r\\nexports.deleteAllEmployees = deleteAllEmployees;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Employee Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getEmployeeDetailsById = (req, res, next) => {\\r\\n Employees.findById(req.params.employeeId)\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateEmployeeDetailsById = (req, res, next) => {\\r\\n var employee = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n role: 'moderater'\\r\\n }\\r\\n Employees.findByIdAndUpdate(req.params.employeeId, {\\r\\n $set: employee\\r\\n }, { new: true })\\r\\n .then((employee) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, employee: employee });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while updating.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAEmployeeById = (req, res, next) => {\\r\\n Employees.findByIdAndRemove(req.params.employeeId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n var err = new Error(\\\"Error while deletting.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getEmployeeDetailsById = getEmployeeDetailsById;\\r\\nexports.updateEmployeeDetailsById = updateEmployeeDetailsById;\\r\\nexports.deleteAEmployeeById = deleteAEmployeeById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/4c/employeeController_4c102fe7873f734bd5117d404757cd9d.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2373\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":22614,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":22611,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployees\",\"ranges\":[{\"startOffset\":577,\"endOffset\":1053,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllEmployeesByName\",\"ranges\":[{\"startOffset\":1086,\"endOffset\":1976,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addEmployee\",\"ranges\":[{\"startOffset\":1999,\"endOffset\":2993,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllEmployees\",\"ranges\":[{\"startOffset\":3023,\"endOffset\":3260,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getEmployeeDetailsById\",\"ranges\":[{\"startOffset\":3709,\"endOffset\":3993,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateEmployeeDetailsById\",\"ranges\":[{\"startOffset\":4030,\"endOffset\":4740,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAEmployeeById\",\"ranges\":[{\"startOffset\":4771,\"endOffset\":5211,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const multer = require('multer');\\n\\nconst {\\n v4: uuidv4\\n} = require('uuid');\\n\\nlet path = require('path');\\n\\nconst storage = multer.diskStorage({\\n destination: function (req, file, cb) {\\n cb(null, 'images');\\n },\\n filename: function (req, file, cb) {\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\n }\\n});\\n\\nconst fileFilter = (req, file, cb) => {\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\n\\n if (allowedFileTypes.includes(file.mimetype)) {\\n cb(null, true);\\n } else {\\n cb(null, false);\\n }\\n};\\n\\nlet upload = multer({\\n storage,\\n fileFilter\\n});\\nexports.upload = upload;\\n\\nconst password_generator = len => {\\n var length = len ? len : 10;\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\n\\n var numeric = '0123456789';\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\n var password = \\\"\\\";\\n var character = \\\"\\\";\\n var crunch = true;\\n\\n while (password.length < length) {\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\n hold = string.charAt(entity1);\\n hold = password.length % 2 == 0 ? hold.toUpperCase() : hold;\\n character += hold;\\n character += numeric.charAt(entity2);\\n character += punctuation.charAt(entity3);\\n password = character;\\n }\\n\\n password = password.split('').sort(function () {\\n return 0.5 - Math.random();\\n }).join('');\\n return password.substr(0, length);\\n};\\n\\nexports.password_generator = password_generator;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzLmpzIl0sIm5hbWVzIjpbIm11bHRlciIsInJlcXVpcmUiLCJ2NCIsInV1aWR2NCIsInBhdGgiLCJzdG9yYWdlIiwiZGlza1N0b3JhZ2UiLCJkZXN0aW5hdGlvbiIsInJlcSIsImZpbGUiLCJjYiIsImZpbGVuYW1lIiwiRGF0ZSIsIm5vdyIsImV4dG5hbWUiLCJvcmlnaW5hbG5hbWUiLCJmaWxlRmlsdGVyIiwiYWxsb3dlZEZpbGVUeXBlcyIsImluY2x1ZGVzIiwibWltZXR5cGUiLCJ1cGxvYWQiLCJleHBvcnRzIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwibGVuIiwibGVuZ3RoIiwic3RyaW5nIiwibnVtZXJpYyIsInB1bmN0dWF0aW9uIiwicGFzc3dvcmQiLCJjaGFyYWN0ZXIiLCJjcnVuY2giLCJlbnRpdHkxIiwiTWF0aCIsImNlaWwiLCJyYW5kb20iLCJlbnRpdHkyIiwiZW50aXR5MyIsImhvbGQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNwbGl0Iiwic29ydCIsImpvaW4iLCJzdWJzdHIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxFQUFFLEVBQUVDO0FBQU4sSUFBaUJGLE9BQU8sQ0FBQyxNQUFELENBQTlCOztBQUNBLElBQUlHLElBQUksR0FBR0gsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBQ0EsTUFBTUksT0FBTyxHQUFHTCxNQUFNLENBQUNNLFdBQVAsQ0FBbUI7QUFDL0JDLEVBQUFBLFdBQVcsRUFBRSxVQUFVQyxHQUFWLEVBQWVDLElBQWYsRUFBcUJDLEVBQXJCLEVBQXlCO0FBQ2xDQSxJQUFBQSxFQUFFLENBQUMsSUFBRCxFQUFPLFFBQVAsQ0FBRjtBQUNILEdBSDhCO0FBSS9CQyxFQUFBQSxRQUFRLEVBQUUsVUFBVUgsR0FBVixFQUFlQyxJQUFmLEVBQXFCQyxFQUFyQixFQUF5QjtBQUMvQkEsSUFBQUEsRUFBRSxDQUFDLElBQUQs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LGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtdWx0ZXIgPSByZXF1aXJlKCdtdWx0ZXInKTtcclxuY29uc3QgeyB2NDogdXVpZHY0IH0gPSByZXF1aXJlKCd1dWlkJyk7XHJcbmxldCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xyXG5jb25zdCBzdG9yYWdlID0gbXVsdGVyLmRpc2tTdG9yYWdlKHtcclxuICAgIGRlc3RpbmF0aW9uOiBmdW5jdGlvbiAocmVxLCBmaWxlLCBjYikge1xyXG4gICAgICAgIGNiKG51bGwsICdpbWFnZXMnKTtcclxuICAgIH0sXHJcbiAgICBmaWxlbmFtZTogZnVuY3Rpb24gKHJlcSwgZmlsZSwgY2IpIHtcclxuICAgICAgICBjYihudWxsLCB1dWlkdjQoKSArICctJyArIERhdGUubm93KCkgKyBwYXRoLmV4dG5hbWUoZmlsZS5vcmlnaW5hbG5hbWUpKTtcclxuICAgIH1cclxufSk7XHJcblxyXG5jb25zdCBmaWxlRmlsdGVyID0gKHJlcSwgZmlsZSwgY2IpID0+IHtcclxuICAgIGNvbnN0IGFsbG93ZWRGaWxlVHlwZXMgPSBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL3BuZyddO1xyXG4gICAgaWYgKGFsbG93ZWRGaWxlVHlwZXMuaW5jbHVkZXMoZmlsZS5taW1ldHlwZSkpIHtcclxuICAgICAgICBjYihudWxsLCB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2IobnVsbCwgZmFsc2UpO1xyXG4gICAgfVxyXG59XHJcblxyXG5sZXQgdXBsb2FkID0gbXVsdGVyKHsgc3RvcmFnZSwgZmlsZUZpbHRlciB9KTtcclxuXHJcbmV4cG9ydHMudXBsb2FkID0gdXBsb2FkO1xyXG5cclxuY29uc3QgcGFzc3dvcmRfZ2VuZXJhdG9yID0gKGxlbikgPT4ge1xyXG4gICAgdmFyIGxlbmd0aCA9IChsZW4pID8gKGxlbikgOiAoMTApO1xyXG4gICAgdmFyIHN0cmluZyA9IFwiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjsgLy90byB1cHBlciBcclxuICAgIHZhciBudW1lcmljID0gJzAxMjM0NTY3ODknO1xyXG4gICAgdmFyIHB1bmN0dWF0aW9uID0gJyFAIyQlXiYqKClfK35gfH17W11cXDo7Pz48LC4vLT0nO1xyXG4gICAgdmFyIHBhc3N3b3JkID0gXCJcIjtcclxuICAgIHZhciBjaGFyYWN0ZXIgPSBcIlwiO1xyXG4gICAgdmFyIGNydW5jaCA9IHRydWU7XHJcbiAgICB3aGlsZSAocGFzc3dvcmQubGVuZ3RoIDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgZW50aXR5MSA9IE1hdGguY2VpbChzdHJpbmcubGVuZ3RoICogTWF0aC5yYW5kb20oKSAqIE1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgIGVudGl0eTIgPSBNYXRoLmNlaWwobnVtZXJpYy5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgZW50aXR5MyA9IE1hdGguY2VpbChwdW5jdHVhdGlvbi5sZW5ndGggKiBNYXRoLnJhbmRvbSgpICogTWF0aC5yYW5kb20oKSk7XHJcbiAgICAgICAgaG9sZCA9IHN0cmluZy5jaGFyQXQoZW50aXR5MSk7XHJcbiAgICAgICAgaG9sZCA9IChwYXNzd29yZC5sZW5ndGggJSAyID09IDApID8gKGhvbGQudG9VcHBlckNhc2UoKSkgOiAoaG9sZCk7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IGhvbGQ7XHJcbiAgICAgICAgY2hhcmFjdGVyICs9IG51bWVyaWMuY2hhckF0KGVudGl0eTIpO1xyXG4gICAgICAgIGNoYXJhY3RlciArPSBwdW5jdHVhdGlvbi5jaGFyQXQoZW50aXR5Myk7XHJcbiAgICAgICAgcGFzc3dvcmQgPSBjaGFyYWN0ZXI7XHJcbiAgICB9XHJcbiAgICBwYXNzd29yZCA9IHBhc3N3b3JkLnNwbGl0KCcnKS5zb3J0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIDAuNSAtIE1hdGgucmFuZG9tKCkgfSkuam9pbignJyk7XHJcbiAgICByZXR1cm4gcGFzc3dvcmQuc3Vic3RyKDAsIGxlbmd0aCk7XHJcbn1cclxuXHJcbmV4cG9ydHMucGFzc3dvcmRfZ2VuZXJhdG9yID0gcGFzc3dvcmRfZ2VuZXJhdG9yOyJdfQ==\",\"originalCode\":\"const multer = require('multer');\\r\\nconst { v4: uuidv4 } = require('uuid');\\r\\nlet path = require('path');\\r\\nconst storage = multer.diskStorage({\\r\\n destination: function (req, file, cb) {\\r\\n cb(null, 'images');\\r\\n },\\r\\n filename: function (req, file, cb) {\\r\\n cb(null, uuidv4() + '-' + Date.now() + path.extname(file.originalname));\\r\\n }\\r\\n});\\r\\n\\r\\nconst fileFilter = (req, file, cb) => {\\r\\n const allowedFileTypes = ['image/jpeg', 'image/jpg', 'image/png'];\\r\\n if (allowedFileTypes.includes(file.mimetype)) {\\r\\n cb(null, true);\\r\\n } else {\\r\\n cb(null, false);\\r\\n }\\r\\n}\\r\\n\\r\\nlet upload = multer({ storage, fileFilter });\\r\\n\\r\\nexports.upload = upload;\\r\\n\\r\\nconst password_generator = (len) => {\\r\\n var length = (len) ? (len) : (10);\\r\\n var string = \\\"abcdefghijklmnopqrstuvwxyz\\\"; //to upper \\r\\n var numeric = '0123456789';\\r\\n var punctuation = '!@#$%^&*()_+~`|}{[]\\\\:;?><,./-=';\\r\\n var password = \\\"\\\";\\r\\n var character = \\\"\\\";\\r\\n var crunch = true;\\r\\n while (password.length < length) {\\r\\n entity1 = Math.ceil(string.length * Math.random() * Math.random());\\r\\n entity2 = Math.ceil(numeric.length * Math.random() * Math.random());\\r\\n entity3 = Math.ceil(punctuation.length * Math.random() * Math.random());\\r\\n hold = string.charAt(entity1);\\r\\n hold = (password.length % 2 == 0) ? (hold.toUpperCase()) : (hold);\\r\\n character += hold;\\r\\n character += numeric.charAt(entity2);\\r\\n character += punctuation.charAt(entity3);\\r\\n password = character;\\r\\n }\\r\\n password = password.split('').sort(function () { return 0.5 - Math.random() }).join('');\\r\\n return password.substr(0, length);\\r\\n}\\r\\n\\r\\nexports.password_generator = password_generator;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/f3/utils_f37ac8376b54b6ced952605900298d07.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2374\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":7861,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":7858,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"destination\",\"ranges\":[{\"startOffset\":248,\"endOffset\":302,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"filename\",\"ranges\":[{\"startOffset\":316,\"endOffset\":423,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"fileFilter\",\"ranges\":[{\"startOffset\":448,\"endOffset\":646,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"password_generator\",\"ranges\":[{\"startOffset\":752,\"endOffset\":1636,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst placeController = require('../controllers/placeController');\\n\\nconst visitingPlaceRouter = express.Router();\\nvisitingPlaceRouter.use(bodyParser.json()); // **********************************************************************************\\n// Visiting Place Routes\\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /visitingPlaces');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\nvisitingPlaceRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName); // **********************************************************************************\\n// \\n// Visiting Place Routes On ID\\n// \\n// **********************************************************************************\\n\\nvisitingPlaceRouter.route('/:visitingPlaceId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\nmodule.exports = visitingPlaceRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInBsYWNlQ29udHJvbGxlciIsInZpc2l0aW5nUGxhY2VSb3V0ZXIiLCJSb3V0ZXIiLCJ1c2UiLCJqc29uIiwicm91dGUiLCJvcHRpb25zIiwiY29yc1dpdGhPcHRpb25zIiwicmVxIiwicmVzIiwic2VuZFN0YXR1cyIsImdldCIsInZlcmlmeVVzZXIiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInBvc3QiLCJ2ZXJpZnlBZG1pbiIsImFkZFZpc2l0aW5nUGxhY2UiLCJwdXQiLCJuZXh0Iiwic3RhdHVzQ29kZSIsImVuZCIsImRlbGV0ZSIsImRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzIiwiZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWUiLCJnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxlQUFlLEdBQUdOLE9BQU8sQ0FBQyxnQ0FBRCxDQUEvQjs7QUFFQSxNQUFNTyxtQkFBbUIsR0FBR1IsT0FBTyxDQUFDUyxNQUFSLEVBQTVCO0FBRUFELG1CQUFtQixDQUFDRSxHQUFwQixDQUF3QlIsVUFBVSxDQUFDUyxJQUFYLEVBQXhCLEUsQ0FFQTtBQUVBO0FBRUE7O0FBRUFILG1CQUFtQixDQUFDSSxLQUFwQixDQUEwQixHQUExQixFQUNLQyxPQURMLENBQ2FWLElBQUksQ0FBQ1csZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNmLElBQUksQ0FBQ0EsSUFGZCxFQUVvQkUsWUFBWSxDQUFDYyxVQUZqQyxFQUU2Q1osZUFBZSxDQUFDYSxvQkFGN0QsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDVCxZQUFZLENBQUNjLFVBSDdDLEVBR3lEZCxZQUFZLENBQUNpQixXQUh0RSxFQUdtRmYsZUFBZSxDQUFDZ0IsZ0JBSG5HLEVBSUtDLEdBSkwsQ0FJU3JCLElBQUksQ0FBQ1csZUFKZCxFQUkrQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUMzQ1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLGdEQUFSO0FBQ0gsQ0FQTCxFQVFLQyxNQVJMLENBUVl6QixJQUFJLENBQUNXLGVBUmpCLEVBUWtDVCxZQUFZLENBQUNjLFVBUi9DLEVBUTJEZCxZQUFZLENBQUNpQixXQVJ4RSxFQVFxRmYsZUFBZSxDQUFDc0IsdUJBUnJHO0FBU0FyQixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsU0FBMUIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0ksSUFGTCxDQUVVbEIsSUFBSSxDQUFDVyxlQUZmLEVBRWdDVCxZQUFZLENBQUNjLFVBRjdDLEVBRXlEWixlQUFlLENBQUN1QiwwQkFGekUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF0QixtQkFBbUIsQ0FBQ0ksS0FBcEIsQ0FBMEIsbUJBQTFCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRW9CRSxZQUFZLENBQUNjLFVBRmpDLEVBRTZDWixlQUFlLENBQUN3QiwyQkFGN0QsRUFHS1YsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2dDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXUyxJQUFYLEtBQW9CO0FBQzVDVCxFQUFBQSxHQUFHLENBQUNVLFVBQUosR0FBaUIsR0FBakI7QUFDQVYsRUFBQUEsR0FBRyxDQUFDVyxHQUFKLENBQVEscURBQXFEWixHQUFHLENBQUNpQixNQUFKLENBQVdDLGVBQXhFO0FBQ0gsQ0FOTCxFQU9LVCxHQVBMLENBT1NyQixJQUFJLENBQUNXLGVBUGQsRUFPK0JULFlBQVksQ0FBQ2MsVUFQNUMsRUFPd0RkLFlBQVksQ0FBQ2lCLFdBUHJFLEVBT2tGZixlQUFlLENBQUMyQiw4QkFQbEcsRUFRS04sTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDaUIsV0FSeEUsRUFRcUZmLGVBQWUsQ0FBQzRCLHdCQVJyRztBQVVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI3QixtQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxuY29uc3QgeyBjaGVja1NjaGVtYSB9ID0gcmVxdWlyZSgnZXhwcmVzcy12YWxpZGF0b3InKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbnZhciB2YWxpZGF0aW9uUnVsZXMgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL3ZhbGlkYXRpb24nKTtcclxuY29uc3QgcGxhY2VDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvcGxhY2VDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCB2aXNpdGluZ1BsYWNlUm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIudXNlKGJvZHlQYXJzZXIuanNvbigpKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBSb3V0ZXNcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnZpc2l0aW5nUGxhY2VSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBwbGFjZUNvbnRyb2xsZXIuZ2V0QWxsVmlzaXRpbmdQbGFjZXMpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmFkZFZpc2l0aW5nUGxhY2UpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3Zpc2l0aW5nUGxhY2VzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzKTtcclxudmlzaXRpbmdQbGFjZVJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRBbGxWaXNpdGluZ1BsYWNlc0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVmlzaXRpbmcgUGxhY2UgUm91dGVzIE9uIElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG52aXNpdGluZ1BsYWNlUm91dGVyLnJvdXRlKCcvOnZpc2l0aW5nUGxhY2VJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIHBsYWNlQ29udHJvbGxlci5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvdmlzaXRpbmdQbGFjZXMvJyArIHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKTtcclxuICAgIH0pXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBwbGFjZUNvbnRyb2xsZXIudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgcGxhY2VDb250cm9sbGVyLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHZpc2l0aW5nUGxhY2VSb3V0ZXI7XHJcbiJdfQ==\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst placeController = require('../controllers/placeController');\\r\\n\\r\\nconst visitingPlaceRouter = express.Router();\\r\\n\\r\\nvisitingPlaceRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\n// Visiting Place Routes\\r\\n\\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getAllVisitingPlaces)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.addVisitingPlace)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /visitingPlaces');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAllVisitingPlaces);\\r\\nvisitingPlaceRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, placeController.getAllVisitingPlacesByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nvisitingPlaceRouter.route('/:visitingPlaceId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, placeController.getVisitingPlaceDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /visitingPlaces/' + req.params.visitingPlaceId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.updateVisitingPlaceDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, placeController.deleteAVisitingPlaceById);\\r\\n\\r\\nmodule.exports = visitingPlaceRouter;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9d/placeRouter_9d9aca2c41f2c1b6283bdacdd67537b2.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2415\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9353,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9350,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":809,\"endOffset\":849,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1067,\"endOffset\":1175,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1366,\"endOffset\":1406,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1807,\"endOffset\":1847,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1961,\"endOffset\":2100,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const VisitingPlaces = require('../models/visitingPlaces'); // **********************************************************************************\\n// \\n// Visiting Place Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllVisitingPlaces = (req, res, next) => {\\n var query = {};\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\n var query = {};\\n\\n if (req.body.similarTo) {\\n query = {\\n name: {\\n $regex: `${req.body.similarTo}`,\\n $options: \\\"i\\\"\\n }\\n };\\n }\\n\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods').then(visitingPlaces => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlaces: visitingPlaces\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst addVisitingPlace = (req, res, next) => {\\n var imagesArray = []; // files = req.files;\\n // files.forEach(file => {\\n // imagesArray.push(file.filename);\\n // });\\n\\n var place = {\\n name: req.body.name,\\n description: req.body.description,\\n location: {\\n coordinates: req.body.location.coordinates\\n },\\n distance: req.body.distance,\\n timeToReach: req.body.timeToReach,\\n images: imagesArray,\\n travellingMethods: req.body.methods\\n };\\n VisitingPlaces.create(place).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\n VisitingPlaces.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\nexports.addVisitingPlace = addVisitingPlace;\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces; // **********************************************************************************\\n// \\n// Visiting Place Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findById(req.params.visitingPlaceId).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(visitingPlace => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n visitingPlace: visitingPlace\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsYWNlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJWaXNpdGluZ1BsYWNlcyIsInJlcXVpcmUiLCJnZXRBbGxWaXNpdGluZ1BsYWNlcyIsInJlcSIsInJlcyIsIm5leHQiLCJxdWVyeSIsImZpbmQiLCJ0aGVuIiwidmlzaXRpbmdQbGFjZXMiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJlcnIiLCJjYXRjaCIsImdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lIiwiYm9keSIsInNpbWlsYXJUbyIsIm5hbWUiLCIkcmVnZXgiLCIkb3B0aW9ucyIsImFkZFZpc2l0aW5nUGxhY2UiLCJpbWFnZXNBcnJheSIsInBsYWNlIiwiZGVzY3JpcHRpb24iLCJsb2NhdGlvbiIsImNvb3JkaW5hdGVzIiwiZGlzdGFuY2UiLCJ0aW1lVG9SZWFjaCIsImltYWdlcyIsInRyYXZlbGxpbmdNZXRob2RzIiwibWV0aG9kcyIsImNyZWF0ZSIsInZpc2l0aW5nUGxhY2UiLCJtc2ciLCJkcml2ZXIiLCJfbWVzc2FnZSIsIm1lc3NhZ2UiLCJkZWxldGVBbGxWaXNpdGluZ1BsYWNlcyIsInJlbW92ZSIsInJlc3AiLCJleHBvcnRzIiwiZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkIiwiZmluZEJ5SWQiLCJwYXJhbXMiLCJ2aXNpdGluZ1BsYWNlSWQiLCJ1cGRhdGVWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxjQUFjLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUE5QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsb0JBQW9CLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsTUFB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QztBQUNBTCxPQUFPLENBQUNTLHdCQUFSLEdBQW1DQSx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBWaXNpdGluZ1BsYWNlcyA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFZpc2l0aW5nIFBsYWNlIE9wZXJhdGlvbnMgXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5jb25zdCBnZXRBbGxWaXNpdGluZ1BsYWNlcyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHF1ZXJ5ID0ge307XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7fTtcclxuICAgIGlmIChyZXEuYm9keS5zaW1pbGFyVG8pIHtcclxuICAgICAgICBxdWVyeSA9IHsgbmFtZTogeyAkcmVnZXg6IGAke3JlcS5ib2R5LnNpbWlsYXJUb31gLCAkb3B0aW9uczogXCJpXCIgfSB9XHJcbiAgICB9XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kKHF1ZXJ5LCAnbmFtZSBkZXNjcmlwdGlvbiBkaXN0YW5jZSBsb2NhdGlvbiB0aW1lVG9SZWFjaCBpbWFnZSB0cmF2ZWxsaW5nTWV0aG9kcycpXHJcbiAgICAgICAgLnRoZW4oKHZpc2l0aW5nUGxhY2VzKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2VzOiB2aXNpdGluZ1BsYWNlcyB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFZpc2l0aW5nUGxhY2UgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBpbWFnZXNBcnJheSA9IFtdO1xyXG4gICAgLy8gZmlsZXMgPSByZXEuZmlsZXM7XHJcbiAgICAvLyBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgLy8gICAgIGltYWdlc0FycmF5LnB1c2goZmlsZS5maWxlbmFtZSk7XHJcbiAgICAvLyB9KTtcclxuICAgIHZhciBwbGFjZSA9XHJcbiAgICB7XHJcbiAgICAgICAgbmFtZTogcmVxLmJvZHkubmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcmVxLmJvZHkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgbG9jYXRpb246IHtcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHJlcS5ib2R5LmxvY2F0aW9uLmNvb3JkaW5hdGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkaXN0YW5jZTogcmVxLmJvZHkuZGlzdGFuY2UsXHJcbiAgICAgICAgdGltZVRvUmVhY2g6IHJlcS5ib2R5LnRpbWVUb1JlYWNoLFxyXG4gICAgICAgIGltYWdlczogaW1hZ2VzQXJyYXksXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZHM6IHJlcS5ib2R5Lm1ldGhvZHNcclxuICAgIH1cclxuICAgIFZpc2l0aW5nUGxhY2VzLmNyZWF0ZShwbGFjZSlcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IGVyci5kcml2ZXIgPyBcIkR1cGxpY2F0ZSBLZXlcIiA6IGVyci5fbWVzc2FnZTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogbXNnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFsbFZpc2l0aW5nUGxhY2VzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5yZW1vdmUoe30pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRBbGxWaXNpdGluZ1BsYWNlcyA9IGdldEFsbFZpc2l0aW5nUGxhY2VzO1xyXG5leHBvcnRzLmdldEFsbFZpc2l0aW5nUGxhY2VzQnlOYW1lID0gZ2V0QWxsVmlzaXRpbmdQbGFjZXNCeU5hbWU7XHJcbmV4cG9ydHMuYWRkVmlzaXRpbmdQbGFjZSA9IGFkZFZpc2l0aW5nUGxhY2U7XHJcbmV4cG9ydHMuZGVsZXRlQWxsVmlzaXRpbmdQbGFjZXMgPSBkZWxldGVBbGxWaXNpdGluZ1BsYWNlcztcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBWaXNpdGluZyBQbGFjZSBPcGVyYXRpb25zIFNwZWNpZmllZCBieSBJRFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0VmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZChyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZClcclxuICAgICAgICAudGhlbigodmlzaXRpbmdQbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCB2aXNpdGluZ1BsYWNlOiB2aXNpdGluZ1BsYWNlIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiQ291bGQgbm90IGZpbmQgdGhlIHBsYWNlXCIgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuY29uc3QgdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBWaXNpdGluZ1BsYWNlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnZpc2l0aW5nUGxhY2VJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh2aXNpdGluZ1BsYWNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHZpc2l0aW5nUGxhY2U6IHZpc2l0aW5nUGxhY2UgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVBVmlzaXRpbmdQbGFjZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFZpc2l0aW5nUGxhY2VzLmZpbmRCeUlkQW5kUmVtb3ZlKHJlcS5wYXJhbXMudmlzaXRpbmdQbGFjZUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHJlc3BvbnNlOiByZXNwIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxufVxyXG5cclxuZXhwb3J0cy5nZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQgPSBnZXRWaXNpdGluZ1BsYWNlRGV0YWlsc0J5SWQ7XHJcbmV4cG9ydHMudXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkID0gdXBkYXRlVmlzaXRpbmdQbGFjZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLmRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZCA9IGRlbGV0ZUFWaXNpdGluZ1BsYWNlQnlJZDsiXX0=\",\"originalCode\":\"const VisitingPlaces = require('../models/visitingPlaces');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllVisitingPlaces = (req, res, next) => {\\r\\n var query = {};\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst getAllVisitingPlacesByName = (req, res, next) => {\\r\\n var query = {};\\r\\n if (req.body.similarTo) {\\r\\n query = { name: { $regex: `${req.body.similarTo}`, $options: \\\"i\\\" } }\\r\\n }\\r\\n VisitingPlaces.find(query, 'name description distance location timeToReach image travellingMethods')\\r\\n .then((visitingPlaces) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlaces: visitingPlaces });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst addVisitingPlace = (req, res, next) => {\\r\\n var imagesArray = [];\\r\\n // files = req.files;\\r\\n // files.forEach(file => {\\r\\n // imagesArray.push(file.filename);\\r\\n // });\\r\\n var place =\\r\\n {\\r\\n name: req.body.name,\\r\\n description: req.body.description,\\r\\n location: {\\r\\n coordinates: req.body.location.coordinates\\r\\n },\\r\\n distance: req.body.distance,\\r\\n timeToReach: req.body.timeToReach,\\r\\n images: imagesArray,\\r\\n travellingMethods: req.body.methods\\r\\n }\\r\\n VisitingPlaces.create(place)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err.driver ? \\\"Duplicate Key\\\" : err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAllVisitingPlaces = (req, res, next) => {\\r\\n VisitingPlaces.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllVisitingPlaces = getAllVisitingPlaces;\\r\\nexports.getAllVisitingPlacesByName = getAllVisitingPlacesByName;\\r\\nexports.addVisitingPlace = addVisitingPlace;\\r\\nexports.deleteAllVisitingPlaces = deleteAllVisitingPlaces;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Visiting Place Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findById(req.params.visitingPlaceId)\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateVisitingPlaceDetailsById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndUpdate(req.params.visitingPlaceId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((visitingPlace) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, visitingPlace: visitingPlace });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteAVisitingPlaceById = (req, res, next) => {\\r\\n VisitingPlaces.findByIdAndRemove(req.params.visitingPlaceId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getVisitingPlaceDetailsById = getVisitingPlaceDetailsById;\\r\\nexports.updateVisitingPlaceDetailsById = updateVisitingPlaceDetailsById;\\r\\nexports.deleteAVisitingPlaceById = deleteAVisitingPlaceById;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/ee/placeController_ee3a20e34d4d356553af723b6f7f6a6e.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2416\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":18578,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":18575,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlaces\",\"ranges\":[{\"startOffset\":403,\"endOffset\":782,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllVisitingPlacesByName\",\"ranges\":[{\"startOffset\":820,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addVisitingPlace\",\"ranges\":[{\"startOffset\":1367,\"endOffset\":2276,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllVisitingPlaces\",\"ranges\":[{\"startOffset\":2311,\"endOffset\":2526,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3026,\"endOffset\":3499,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateVisitingPlaceDetailsById\",\"ranges\":[{\"startOffset\":3541,\"endOffset\":3906,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAVisitingPlaceById\",\"ranges\":[{\"startOffset\":3942,\"endOffset\":4237,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst scheduleController = require('../controllers/scheduleController');\\n\\nconst scheduleRouter = express.Router();\\nscheduleRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Schedule Routes\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules).post(cors.corsWithOptions, authenticate.verifyUser, scheduleController.addSchedule).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /schedules');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules); // **********************************************************************************\\n// \\n// Schedule Routes On ID\\n// \\n// **********************************************************************************\\n\\nscheduleRouter.route('/:scheduleId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\nscheduleRouter.route('/user/:userId').options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\nmodule.exports = scheduleRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlUm91dGVyLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiYm9keVBhcnNlciIsImNvcnMiLCJjaGVja1NjaGVtYSIsImF1dGhlbnRpY2F0ZSIsInZhbGlkYXRpb25SdWxlcyIsInNjaGVkdWxlQ29udHJvbGxlciIsInNjaGVkdWxlUm91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsU2NoZWR1bGVzIiwicG9zdCIsImFkZFNjaGVkdWxlIiwicHV0IiwidmVyaWZ5TW9kZXJhdGVyIiwibmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJkZWxldGUiLCJ2ZXJpZnlBZG1pbiIsImRlbGV0ZUFsbFNjaGVkdWxlcyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJwYXJhbXMiLCJzY2hlZHVsZUlkIiwidXBkYXRlU2NoZWR1bGVCeUlkIiwiZGVsZXRlU2NoZWR1bGVCeUlkIiwiZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBRUEsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVHLEVBQUFBO0FBQUYsSUFBa0JILE9BQU8sQ0FBQyxtQkFBRCxDQUEvQjs7QUFDQSxJQUFJSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxJQUFJSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQywwQkFBRCxDQUE3Qjs7QUFDQSxNQUFNTSxrQkFBa0IsR0FBR04sT0FBTyxDQUFDLG1DQUFELENBQWxDOztBQUVBLE1BQU1PLGNB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T0FBUCxHQUFpQjlCLGNBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHNjaGVkdWxlQ29udHJvbGxlciA9IHJlcXVpcmUoJy4uL2NvbnRyb2xsZXJzL3NjaGVkdWxlQ29udHJvbGxlcicpXHJcblxyXG5jb25zdCBzY2hlZHVsZVJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci51c2UoYm9keVBhcnNlci5qc29uKCkpO1xyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgUm91dGVzXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnLycpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuZ2V0QWxsU2NoZWR1bGVzKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICBzY2hlZHVsZUNvbnRyb2xsZXIuYWRkU2NoZWR1bGUpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeU1vZGVyYXRlciwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUFVUIG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIC9zY2hlZHVsZXMnKTtcclxuICAgIH0pXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBzY2hlZHVsZUNvbnRyb2xsZXIuZGVsZXRlQWxsU2NoZWR1bGVzKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBSb3V0ZXMgT24gSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnNjaGVkdWxlUm91dGVyLnJvdXRlKCcvOnNjaGVkdWxlSWQnKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAocmVxLCByZXMpID0+IHsgcmVzLnNlbmRTdGF0dXMoMjAwKTsgfSlcclxuICAgIC5nZXQoY29ycy5jb3JzLCBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgc2NoZWR1bGVDb250cm9sbGVyLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQpXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgcmVzLmVuZCgnUE9TVCBvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiAvc2NoZWR1bGVzLycgKyByZXEucGFyYW1zLnNjaGVkdWxlSWQpO1xyXG4gICAgfSlcclxuICAgIC5wdXQoY29ycy5jb3JzV2l0aE9wdGlvbnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCBhdXRoZW50aWNhdGUudmVyaWZ5TW9kZXJhdGVyLCBzY2hlZHVsZUNvbnRyb2xsZXIudXBkYXRlU2NoZWR1bGVCeUlkKVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgc2NoZWR1bGVDb250cm9sbGVyLmRlbGV0ZVNjaGVkdWxlQnlJZCk7XHJcblxyXG5zY2hlZHVsZVJvdXRlci5yb3V0ZSgnL3VzZXIvOnVzZXJJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsIGF1dGhlbnRpY2F0ZS52ZXJpZnlVc2VyLCAgc2NoZWR1bGVDb250cm9sbGVyLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gc2NoZWR1bGVSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst scheduleController = require('../controllers/scheduleController')\\r\\n\\r\\nconst scheduleRouter = express.Router();\\r\\n\\r\\nscheduleRouter.use(bodyParser.json());\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedules)\\r\\n .post(cors.corsWithOptions,authenticate.verifyUser, scheduleController.addSchedule)\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /schedules');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteAllSchedules);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Routes On ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nscheduleRouter.route('/:scheduleId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getScheduleDetailsById)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /schedules/' + req.params.scheduleId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, scheduleController.updateScheduleById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, scheduleController.deleteScheduleById);\\r\\n\\r\\nscheduleRouter.route('/user/:userId')\\r\\n .options(cors.corsWithOptions, authenticate.verifyUser, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, scheduleController.getAllSchedulesForAUser);\\r\\n\\r\\nmodule.exports = scheduleRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9b/scheduleRouter_9b57edc7078385d142c957dea9d9e0be.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2417\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9621,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9618,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":802,\"endOffset\":842,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1085,\"endOffset\":1188,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1621,\"endOffset\":1661,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1824,\"endOffset\":1953,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":2288,\"endOffset\":2328,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedules = require('../models/schedules'); // **********************************************************************************\\n// \\n// Schedule Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllSchedules = (req, res, next) => {\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst getAllSchedulesForAUser = (req, res, next) => {\\n var query = {\\n \\\"user\\\": String(req.params.userId)\\n };\\n Schedules.find(query).populate(\\\"place\\\").then(schedules => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedules: schedules\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to get data\\\"\\n });\\n });\\n};\\n\\nconst addSchedule = (req, res, next) => {\\n var schedule = {\\n user: req.body.user,\\n place: req.body.place,\\n date: req.body.date,\\n state: \\\"new\\\",\\n travellingMethod: req.body.travellingMethod\\n };\\n Schedules.create(schedule).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n const msg = err._message;\\n res.json({\\n success: false,\\n message: msg\\n });\\n }).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Failed to add a schedule\\\"\\n });\\n });\\n};\\n\\nconst deleteAllSchedules = (req, res, next) => {\\n Schedules.remove({}).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json(resp);\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllSchedules = getAllSchedules;\\nexports.addSchedule = addSchedule;\\nexports.deleteAllSchedules = deleteAllSchedules;\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser; // **********************************************************************************\\n// \\n// Schedule Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getScheduleDetailsById = (req, res, next) => {\\n Schedules.findById(req.params.scheduleId).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Could not find the place\\\"\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateScheduleById = (req, res, next) => {\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(schedule => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n schedule: schedule\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Update failed\\\"\\n });\\n });\\n};\\n\\nconst deleteScheduleById = (req, res, next) => {\\n Schedules.findByIdAndRemove(req.params.scheduleId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: \\\"Delete failed\\\"\\n });\\n });\\n};\\n\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\nexports.updateScheduleById = updateScheduleById;\\nexports.deleteScheduleById = deleteScheduleById; // **********************************************************************************\\n// \\n// Schedule Operations Specified by UserID\\n// \\n// **********************************************************************************\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\n// Schedules.findById(req.params.scheduleId)\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const updateScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\n// $set: req.body\\n// }, { new: true })\\n// .then((schedule) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(schedule);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n// const deleteScheduleByUserId = (req, res, next) => {\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\n// .then((resp) => {\\n// res.statusCode = 200;\\n// res.setHeader('Content-Type', 'application/json');\\n// res.json(resp);\\n// }, (err) => next(err))\\n// .catch((err) => next(err));\\n// }\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZXMiLCJyZXF1aXJlIiwiZ2V0QWxsU2NoZWR1bGVzIiwicmVxIiwicmVzIiwibmV4dCIsImZpbmQiLCJxdWVyeSIsInBvcHVsYXRlIiwidGhlbiIsInNjaGVkdWxlcyIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJqc29uIiwic3VjY2VzcyIsImVyciIsImNhdGNoIiwibWVzc2FnZSIsImdldEFsbFNjaGVkdWxlc0ZvckFVc2VyIiwiU3RyaW5nIiwicGFyYW1zIiwidXNlcklkIiwibXNnIiwiX21lc3NhZ2UiLCJhZGRTY2hlZHVsZSIsInNjaGVkdWxlIiwidXNlciIsImJvZHkiLCJwbGFjZSIsImRhdGUiLCJzdGF0ZSIsInRyYXZlbGxpbmdNZXRob2QiLCJjcmVhdGUiLCJkZWxldGVBbGxTY2hlZHVsZXMiLCJyZW1vdmUiLCJyZXNwIiwiZXhwb3J0cyIsImdldFNjaGVkdWxlRGV0YWlsc0J5SWQiLCJmaW5kQnlJZCIsInNjaGVkdWxlSWQiLCJ1cGRhdGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFVwZGF0ZSIsIiRzZXQiLCJuZXciLCJkZWxldGVTY2hlZHVsZUJ5SWQiLCJmaW5kQnlJZEFuZFJlbW92ZSIsInJlc3BvbnNlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxxQkFBRCxDQUF6QixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUMsZUFBZSxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3hDTCxFQUFBQSxTQUFTLENBQUNNLElBQVYsQ0FBZUgsR0FBRyxDQUFDSSxLQUFuQixFQUEwQkMsUUFBMUIsQ0FBbUMsT0FBbkMsRUFBNENBLFFBQTVDLENBQXFELE1BQXJELEVBQ0tDLElBREwsQ0FDV0MsU0FBRCxJQUFlO0FBQ2pCTixJQUFBQSxHQUFHLENBQUNPLFVBQUosR0FBaUIs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Q1cwQixJQUFELElBQVU7QUFDWi9CLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsSUFBWDtBQUFpQmdDLE1BQUFBLFFBQVEsRUFBQ1g7QUFBMUIsS0FBVDtBQUNILEdBTEwsRUFLUXBCLEdBQUQsSUFBU1YsSUFBSSxDQUFDVSxHQUFELENBTHBCLEVBTUtDLEtBTkwsQ0FNWUQsR0FBRCxJQUFTO0FBQ1pYLElBQUFBLEdBQUcsQ0FBQ08sVUFBSixHQUFpQixHQUFqQjtBQUNBUCxJQUFBQSxHQUFHLENBQUNRLFNBQUosQ0FBYyxjQUFkLEVBQThCLGtCQUE5QjtBQUNBUixJQUFBQSxHQUFHLENBQUNTLElBQUosQ0FBUztBQUFFQyxNQUFBQSxPQUFPLEVBQUUsS0FBWDtBQUFrQkcsTUFBQUEsT0FBTyxFQUFFO0FBQTNCLEtBQVQ7QUFDSCxHQVZMO0FBV0gsQ0FaRDs7QUFjQW1CLE9BQU8sQ0FBQ0Msc0JBQVIsR0FBaUNBLHNCQUFqQztBQUNBRCxPQUFPLENBQUNJLGtCQUFSLEdBQTZCQSxrQkFBN0I7QUFDQUosT0FBTyxDQUFDUSxrQkFBUixHQUE2QkEsa0JBQTdCLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlcyA9IHJlcXVpcmUoJy4uL21vZGVscy9zY2hlZHVsZXMnKTtcclxuXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuLy8gXHJcbi8vICAgICAgICAgICAgICBTY2hlZHVsZSBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMuZmluZChyZXEucXVlcnkpLnBvcHVsYXRlKFwicGxhY2VcIikucG9wdWxhdGUoXCJ1c2VyXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gZ2V0IGRhdGFcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXIgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJ1c2VyXCI6IFN0cmluZyhyZXEucGFyYW1zLnVzZXJJZCkgfTtcclxuICAgIFNjaGVkdWxlcy5maW5kKHF1ZXJ5KS5wb3B1bGF0ZShcInBsYWNlXCIpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlcykgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZXM6c2NoZWR1bGVzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+ICB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICBjb25zdCBtc2cgPSBlcnIuX21lc3NhZ2U7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IG1zZyB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkZhaWxlZCB0byBnZXQgZGF0YVwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBhZGRTY2hlZHVsZSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHNjaGVkdWxlID0ge1xyXG4gICAgICAgIHVzZXI6IHJlcS5ib2R5LnVzZXIsXHJcbiAgICAgICAgcGxhY2U6IHJlcS5ib2R5LnBsYWNlLFxyXG4gICAgICAgIGRhdGU6IHJlcS5ib2R5LmRhdGUsXHJcbiAgICAgICAgc3RhdGU6IFwibmV3XCIsXHJcbiAgICAgICAgdHJhdmVsbGluZ01ldGhvZDogcmVxLmJvZHkudHJhdmVsbGluZ01ldGhvZFxyXG4gICAgfVxyXG4gICAgU2NoZWR1bGVzLmNyZWF0ZShzY2hlZHVsZSlcclxuICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgc2NoZWR1bGU6c2NoZWR1bGUgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgY29uc3QgbXNnID0gZXJyLl9tZXNzYWdlO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBtc2cgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogXCJGYWlsZWQgdG8gYWRkIGEgc2NoZWR1bGVcIiB9KTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuY29uc3QgZGVsZXRlQWxsU2NoZWR1bGVzID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICBTY2hlZHVsZXMucmVtb3ZlKHt9KVxyXG4gICAgICAgIC50aGVuKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbihyZXNwKTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0QWxsU2NoZWR1bGVzID0gZ2V0QWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmFkZFNjaGVkdWxlID0gYWRkU2NoZWR1bGU7XHJcbmV4cG9ydHMuZGVsZXRlQWxsU2NoZWR1bGVzID0gZGVsZXRlQWxsU2NoZWR1bGVzO1xyXG5leHBvcnRzLmdldEFsbFNjaGVkdWxlc0ZvckFVc2VyID0gZ2V0QWxsU2NoZWR1bGVzRm9yQVVzZXI7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZChyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHNjaGVkdWxlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHNjaGVkdWxlOnNjaGVkdWxlIH0pO1xyXG4gICAgICAgIH0sICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBcIkNvdWxkIG5vdCBmaW5kIHRoZSBwbGFjZVwiIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgU2NoZWR1bGVzLmZpbmRCeUlkQW5kVXBkYXRlKHJlcS5wYXJhbXMuc2NoZWR1bGVJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKChzY2hlZHVsZSkgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiB0cnVlLCBzY2hlZHVsZTpzY2hlZHVsZSB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiVXBkYXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBkZWxldGVTY2hlZHVsZUJ5SWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6cmVzcCB9KTtcclxuICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IFwiRGVsZXRlIGZhaWxlZFwiIH0pO1xyXG4gICAgICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnRzLmdldFNjaGVkdWxlRGV0YWlsc0J5SWQgPSBnZXRTY2hlZHVsZURldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVNjaGVkdWxlQnlJZCA9IHVwZGF0ZVNjaGVkdWxlQnlJZDtcclxuZXhwb3J0cy5kZWxldGVTY2hlZHVsZUJ5SWQgPSBkZWxldGVTY2hlZHVsZUJ5SWQ7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgU2NoZWR1bGUgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgVXNlcklEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG4vLyBjb25zdCBnZXRTY2hlZHVsZURldGFpbHNCeVVzZXJJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4vLyAgICAgU2NoZWR1bGVzLmZpbmRCeUlkKHJlcS5wYXJhbXMuc2NoZWR1bGVJZClcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IHVwZGF0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQsIHtcclxuLy8gICAgICAgICAkc2V0OiByZXEuYm9keVxyXG4vLyAgICAgfSwgeyBuZXc6IHRydWUgfSlcclxuLy8gICAgICAgICAudGhlbigoc2NoZWR1bGUpID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHNjaGVkdWxlKTtcclxuLy8gICAgICAgICB9LCAoZXJyKSA9PiBuZXh0KGVycikpXHJcbi8vICAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbi8vIH1cclxuXHJcbi8vIGNvbnN0IGRlbGV0ZVNjaGVkdWxlQnlVc2VySWQgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuLy8gICAgIFNjaGVkdWxlcy5maW5kQnlJZEFuZFJlbW92ZShyZXEucGFyYW1zLnNjaGVkdWxlSWQpXHJcbi8vICAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuLy8gICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbi8vICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbi8vICAgICAgICAgICAgIHJlcy5qc29uKHJlc3ApO1xyXG4vLyAgICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuLy8gICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTtcclxuLy8gfSJdfQ==\",\"originalCode\":\"const Schedules = require('../models/schedules');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllSchedules = (req, res, next) => {\\r\\n Schedules.find(req.query).populate(\\\"place\\\").populate(\\\"user\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllSchedulesForAUser = (req, res, next) => {\\r\\n var query = { \\\"user\\\": String(req.params.userId) };\\r\\n Schedules.find(query).populate(\\\"place\\\")\\r\\n .then((schedules) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedules:schedules });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to get data\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addSchedule = (req, res, next) => {\\r\\n var schedule = {\\r\\n user: req.body.user,\\r\\n place: req.body.place,\\r\\n date: req.body.date,\\r\\n state: \\\"new\\\",\\r\\n travellingMethod: req.body.travellingMethod\\r\\n }\\r\\n Schedules.create(schedule)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n const msg = err._message;\\r\\n res.json({ success: false, message: msg });\\r\\n })\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Failed to add a schedule\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteAllSchedules = (req, res, next) => {\\r\\n Schedules.remove({})\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json(resp);\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllSchedules = getAllSchedules;\\r\\nexports.addSchedule = addSchedule;\\r\\nexports.deleteAllSchedules = deleteAllSchedules;\\r\\nexports.getAllSchedulesForAUser = getAllSchedulesForAUser;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getScheduleDetailsById = (req, res, next) => {\\r\\n Schedules.findById(req.params.scheduleId)\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Could not find the place\\\" });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst updateScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((schedule) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, schedule:schedule });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Update failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nconst deleteScheduleById = (req, res, next) => {\\r\\n Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response:resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: \\\"Delete failed\\\" });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getScheduleDetailsById = getScheduleDetailsById;\\r\\nexports.updateScheduleById = updateScheduleById;\\r\\nexports.deleteScheduleById = deleteScheduleById;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Schedule Operations Specified by UserID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\n// const getScheduleDetailsByUserId = (req, res, next) => {\\r\\n// Schedules.findById(req.params.scheduleId)\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const updateScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndUpdate(req.params.scheduleId, {\\r\\n// $set: req.body\\r\\n// }, { new: true })\\r\\n// .then((schedule) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(schedule);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\\r\\n\\r\\n// const deleteScheduleByUserId = (req, res, next) => {\\r\\n// Schedules.findByIdAndRemove(req.params.scheduleId)\\r\\n// .then((resp) => {\\r\\n// res.statusCode = 200;\\r\\n// res.setHeader('Content-Type', 'application/json');\\r\\n// res.json(resp);\\r\\n// }, (err) => next(err))\\r\\n// .catch((err) => next(err));\\r\\n// }\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/1e/scheduleController_1ed35fc0c47927fadcf3cf43433b4df6.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2542\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23520,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23517,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedules\",\"ranges\":[{\"startOffset\":382,\"endOffset\":846,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllSchedulesForAUser\",\"ranges\":[{\"startOffset\":881,\"endOffset\":1554,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addSchedule\",\"ranges\":[{\"startOffset\":1577,\"endOffset\":2348,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllSchedules\",\"ranges\":[{\"startOffset\":2378,\"endOffset\":2588,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getScheduleDetailsById\",\"ranges\":[{\"startOffset\":3041,\"endOffset\":3489,\"count\":2}],\"isBlockCoverage\":true},{\"functionName\":\"Schedules.findById.then.res.statusCode\",\"ranges\":[{\"startOffset\":3112,\"endOffset\":3279,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3281,\"endOffset\":3461,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3469,\"endOffset\":3485,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateScheduleById\",\"ranges\":[{\"startOffset\":3519,\"endOffset\":4012,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3646,\"endOffset\":3813,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3815,\"endOffset\":3831,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":3839,\"endOffset\":4008,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteScheduleById\",\"ranges\":[{\"startOffset\":4042,\"endOffset\":4480,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4122,\"endOffset\":4281,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4283,\"endOffset\":4299,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":4307,\"endOffset\":4476,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst Schema = mongoose.Schema;\\n\\nrequire('mongoose-currency').loadType(mongoose);\\n\\nconst Currency = mongoose.Types.Currency;\\nconst scheduleSchema = new Schema({\\n user: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"User\\\"\\n },\\n place: {\\n type: mongoose.Schema.Types.ObjectId,\\n ref: \\\"Place\\\"\\n },\\n date: {\\n type: Date,\\n required: true\\n },\\n fair: {\\n type: Currency,\\n min: 0\\n },\\n state: {\\n type: String,\\n default: \\\"new\\\",\\n enum: [\\\"new\\\", \\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\n },\\n travellingMethod: {\\n type: String,\\n required: true,\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\n }\\n}, {\\n timestamps: true\\n});\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\nmodule.exports = Schedules;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlcy5qcyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJTY2hlbWEiLCJsb2FkVHlwZSIsIkN1cnJlbmN5IiwiVHlwZXMiLCJzY2hlZHVsZVNjaGVtYSIsInVzZXIiLCJ0eXBlIiwiT2JqZWN0SWQiLCJyZWYiLCJwbGFjZSIsImRhdGUiLCJEYXRlIiwicmVxdWlyZWQiLCJmYWlyIiwibWluIiwic3RhdGUiLCJTdHJpbmciLCJkZWZhdWx0IiwiZW51bSIsInRyYXZlbGxpbmdNZXRob2QiLCJ0aW1lc3RhbXBzIiwiU2NoZWR1bGVzIiwibW9kZWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRSxNQUF4Qjs7QUFDQUQsT0FBTyxDQUFDLG1CQUFELENBQVAsQ0FBNkJFLFFBQTdCLENBQXNDSCxRQUF0Qzs7QUFDQSxNQUFNSSxRQUFRLEdBQUdKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlRCxRQUFoQztBQUNBLE1BQU1FLGNBQWMsR0FBRyxJQUFJSixNQUFKLENBQVc7QUFDOUJLLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxJQUFJLEVBQUVSLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQkcsS0FBaEIsQ0FBc0JJLFFBRDFCO0FBRUZDLElBQUFBLEdBQUcsRUFBRTtBQUZILEdBRHdCO0FBSzlCQyxFQUFBQSxLQUFLLEVBQUU7QUFDSEgsSUFBQUEsSUFBSSxFQUFFUixRQUFRLENBQUNFLE1BQVQsQ0FBZ0JHLEtBQWhCLENBQXNCSSxRQUR6QjtBQUVIQyxJQUFBQSxHQUFHLEVBQUU7QUFGRixHQUx1QjtBQVM5QkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZKLElBQUFBLElBQUksRUFBRUssSUFESjtBQUVGQyxJQUFBQSxRQUFRLEVBQUU7QUFGUixHQVR3QjtBQWE5QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0ZQLElBQUFBLElBQUksRUFBRUosUUFESjtBQUVGWSxJQUFBQSxHQUFHLEVBQUU7QUFGSCxHQWJ3QjtBQWlCOUJDLEVBQUFBLEtBQUssRUFBRTtBQUNIVCxJQUFBQSxJQUFJLEVBQUVVLE1BREg7QUFFSEMsSUFBQUEsT0FBTyxFQUFFLEtBRk47QUFHSEMsSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFPLGVBQVAsRUFBd0IsVUFBeEIsRUFBb0MsV0FBcEM7QUFISCxHQWpCdUI7QUFzQjlCQyxFQUFBQSxnQkFBZ0IsRUFBRTtBQUNkYixJQUFBQSxJQUFJLEVBQUVVLE1BRFE7QUFFZEosSUFBQUEsUUFBUSxFQUFFLElBRkk7QUFHZE0sSUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxPQUFmLEVBQXdCLGNBQXhCLEVBQXdDLE1BQXhDO0FBSFE7QUF0QlksQ0FBWCxFQTJCcEI7QUFDQ0UsRUFBQUEsVUFBVSxFQUFFO0FBRGIsQ0EzQm9CLENBQXZCO0FBK0JBLElBQUlDLFNBQVMsR0FBR3ZCLFFBQVEsQ0FBQ3dCLEtBQVQsQ0FBZSxVQUFmLEVBQTJCbEIsY0FBM0IsQ0FBaEI7QUFFQW1CLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkgsU0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IFNjaGVtYSA9IG1vbmdvb3NlLlNjaGVtYTtcclxucmVxdWlyZSgnbW9uZ29vc2UtY3VycmVuY3knKS5sb2FkVHlwZShtb25nb29zZSk7XHJcbmNvbnN0IEN1cnJlbmN5ID0gbW9uZ29vc2UuVHlwZXMuQ3VycmVuY3k7XHJcbmNvbnN0IHNjaGVkdWxlU2NoZW1hID0gbmV3IFNjaGVtYSh7XHJcbiAgICB1c2VyOiB7XHJcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk9iamVjdElkLFxyXG4gICAgICAgIHJlZjogXCJVc2VyXCJcclxuICAgIH0sXHJcbiAgICBwbGFjZToge1xyXG4gICAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5PYmplY3RJZCxcclxuICAgICAgICByZWY6IFwiUGxhY2VcIlxyXG4gICAgfSxcclxuICAgIGRhdGU6IHtcclxuICAgICAgICB0eXBlOiBEYXRlLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZmFpcjoge1xyXG4gICAgICAgIHR5cGU6IEN1cnJlbmN5LFxyXG4gICAgICAgIG1pbjogMFxyXG4gICAgfSxcclxuICAgIHN0YXRlOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIGRlZmF1bHQ6IFwibmV3XCIsXHJcbiAgICAgICAgZW51bTogW1wibmV3XCIsXCJub3QtY29tcGxldGVkXCIsIFwiY2FuY2VsZWRcIiwgXCJjb21wbGV0ZWRcIl1cclxuICAgIH0sXHJcbiAgICB0cmF2ZWxsaW5nTWV0aG9kOiB7XHJcbiAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGVudW06IFsnQnVzJywgJ0NhcicsICdUcmFpbicsICdUaHJlZXdoZWVsZXInLCAnRm9vdCddXHJcbiAgICB9XHJcbn0sIHtcclxuICAgIHRpbWVzdGFtcHM6IHRydWVcclxufSk7XHJcblxyXG52YXIgU2NoZWR1bGVzID0gbW9uZ29vc2UubW9kZWwoJ1NjaGVkdWxlJywgc2NoZWR1bGVTY2hlbWEpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2hlZHVsZXM7Il19\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst Schema = mongoose.Schema;\\r\\nrequire('mongoose-currency').loadType(mongoose);\\r\\nconst Currency = mongoose.Types.Currency;\\r\\nconst scheduleSchema = new Schema({\\r\\n user: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"User\\\"\\r\\n },\\r\\n place: {\\r\\n type: mongoose.Schema.Types.ObjectId,\\r\\n ref: \\\"Place\\\"\\r\\n },\\r\\n date: {\\r\\n type: Date,\\r\\n required: true\\r\\n },\\r\\n fair: {\\r\\n type: Currency,\\r\\n min: 0\\r\\n },\\r\\n state: {\\r\\n type: String,\\r\\n default: \\\"new\\\",\\r\\n enum: [\\\"new\\\",\\\"not-completed\\\", \\\"canceled\\\", \\\"completed\\\"]\\r\\n },\\r\\n travellingMethod: {\\r\\n type: String,\\r\\n required: true,\\r\\n enum: ['Bus', 'Car', 'Train', 'Threewheeler', 'Foot']\\r\\n }\\r\\n}, {\\r\\n timestamps: true\\r\\n});\\r\\n\\r\\nvar Schedules = mongoose.model('Schedule', scheduleSchema);\\r\\n\\r\\nmodule.exports = Schedules;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/e2/schedules_e2f8e79bc28961f4db3736c92d490e47.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2543\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":4238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":4235,\"count\":1}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nconst {\\n checkSchema\\n} = require('express-validator');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nvar validationRules = require('../middleware/validation');\\n\\nconst touristController = require('../controllers/touristController');\\n\\nconst touristRouter = express.Router();\\ntouristRouter.use(bodyParser.json()); // **********************************************************************************\\n// \\n// Tourist Routes\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getAllTourists).post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist).put(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('PUT operation not supported on /tourists');\\n}).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\ntouristRouter.route('/search').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName); // **********************************************************************************\\n// \\n// Tourist Routes Specified by ID\\n// \\n// **********************************************************************************\\n\\ntouristRouter.route('/:touristId').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById).post(cors.corsWithOptions, (req, res, next) => {\\n res.statusCode = 403;\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\n}).put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById).delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\nmodule.exports = touristRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RSb3V0ZXIuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJib2R5UGFyc2VyIiwiY29ycyIsImNoZWNrU2NoZW1hIiwiYXV0aGVudGljYXRlIiwidmFsaWRhdGlvblJ1bGVzIiwidG91cmlzdENvbnRyb2xsZXIiLCJ0b3VyaXN0Um91dGVyIiwiUm91dGVyIiwidXNlIiwianNvbiIsInJvdXRlIiwib3B0aW9ucyIsImNvcnNXaXRoT3B0aW9ucyIsInJlcSIsInJlcyIsInNlbmRTdGF0dXMiLCJnZXQiLCJ2ZXJpZnlVc2VyIiwiZ2V0QWxsVG91cmlzdHMiLCJwb3N0IiwidmVyaWZ5TW9kZXJhdGVyIiwiYWRkVG91cmlzdCIsInB1dCIsIm5leHQiLCJzdGF0dXNDb2RlIiwiZW5kIiwiZGVsZXRlIiwidmVyaWZ5QWRtaW4iLCJkZWxldGVBbGxUb3VyaXN0cyIsImdldEFsbFRvdXJpc3RzQnlOYW1lIiwiZ2V0VG91cmlzdERldGFpbHNCeUlkIiwicGFyYW1zIiwidG91cmlzdElkIiwidXBkYXRlVG91cmlzdERldGFpbHNCeUlkIiwiZGVsZXRlQVRvdXJpc3RCeUlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFRyxFQUFBQTtBQUFGLElBQWtCSCxPQUFPLENBQUMsbUJBQUQsQ0FBL0I7O0FBQ0EsSUFBSUksWUFBWSxHQUFHSixPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsSUFBSUssZUFBZSxHQUFHTCxPQUFPLENBQUMsMEJBQUQsQ0FBN0I7O0FBQ0EsTUFBTU0saUJBQWlCLEdBQUdOLE9BQU8sQ0FBQyxrQ0FBRCxDQUFqQzs7QUFFQSxNQUFNTyxhQUFhLEdBQUdSLE9BQU8sQ0FBQ1MsTUFBUixFQUF0QjtBQUVBRCxhQUFhLENBQUNFLEdBQWQsQ0FBa0JSLFVBQVUsQ0FBQ1MsSUFBWCxFQUFsQixFLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUgsYUFBYSxDQUFDSSxLQUFkLENBQW9CLEdBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtDLEdBRkwsQ0FFU2YsSUFBSSxDQUFDQSxJQUZkLEVBRXFCRSxZQUFZLENBQUNjLFVBRmxDLEVBRWdEWixpQkFBaUIsQ0FBQ2EsY0FGbEUsRUFHS0MsSUFITCxDQUdVbEIsSUFBSSxDQUFDVyxlQUhmLEVBR2lDVCxZQUFZLENBQUNjLFVBSDlDLEVBRzBEZCxZQUFZLENBQUNpQixlQUh2RSxFQUd3RmYsaUJBQWlCLENBQUNnQixVQUgxRyxFQUlLQyxHQUpMLENBSVNyQixJQUFJLENBQUNXLGVBSmQsRUFJK0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdTLElBQVgsS0FBb0I7QUFDM0NULEVBQUFBLEdBQUcsQ0FBQ1UsVUFBSixHQUFpQixHQUFqQjtBQUNBVixFQUFBQSxHQUFHLENBQUNXLEdBQUosQ0FBUSwwQ0FBUjtBQUNILENBUEwsRUFRS0MsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFrQ1QsWUFBWSxDQUFDYyxVQVIvQyxFQVEyRGQsWUFBWSxDQUFDd0IsV0FSeEUsRUFRc0Z0QixpQkFBaUIsQ0FBQ3VCLGlCQVJ4RztBQVNBdEIsYUFBYSxDQUFDSSxLQUFkLENBQW9CLFNBQXBCLEVBQ0tDLE9BREwsQ0FDYVYsSUFBSSxDQUFDVyxlQURsQixFQUNtQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUFFQSxFQUFBQSxHQUFHLENBQUNDLFVBQUosQ0FBZSxHQUFmO0FBQXNCLENBRHpFLEVBRUtJLElBRkwsQ0FFVWxCLElBQUksQ0FBQ1csZUFGZixFQUVnQ1QsWUFBWSxDQUFDYyxVQUY3QyxFQUUwRFosaUJBQWlCLENBQUN3QixvQkFGNUUsRSxDQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUF2QixhQUFhLENBQUNJLEtBQWQsQ0FBb0IsYUFBcEIsRUFDS0MsT0FETCxDQUNhVixJQUFJLENBQUNXLGVBRGxCLEVBQ21DLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQUVBLEVBQUFBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLEdBQWY7QUFBc0IsQ0FEekUsRUFFS0MsR0FGTCxDQUVTZixJQUFJLENBQUNBLElBRmQsRUFFb0JFLFlBQVksQ0FBQ2MsVUFGakMsRUFFK0NaLGlCQUFpQixDQUFDeUIscUJBRmpFLEVBR0tYLElBSEwsQ0FHVWxCLElBQUksQ0FBQ1csZUFIZixFQUdnQyxDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV1MsSUFBWCxLQUFvQjtBQUM1Q1QsRUFBQUEsR0FBRyxDQUFDVSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FWLEVBQUFBLEdBQUcsQ0FBQ1csR0FBSixDQUFRLCtDQUErQ1osR0FBRyxDQUFDa0IsTUFBSixDQUFXQyxTQUFsRTtBQUNILENBTkwsRUFPS1YsR0FQTCxDQU9TckIsSUFBSSxDQUFDVyxlQVBkLEVBTytCVCxZQUFZLENBQUNjLFVBUDVDLEVBT3dEZCxZQUFZLENBQUNpQixlQVByRSxFQU91RmYsaUJBQWlCLENBQUM0Qix3QkFQekcsRUFRS1AsTUFSTCxDQVFZekIsSUFBSSxDQUFDVyxlQVJqQixFQVFtQ1QsWUFBWSxDQUFDYyxVQVJoRCxFQVE0RGQsWUFBWSxDQUFDaUIsZUFSekUsRUFRMEZmLGlCQUFpQixDQUFDNkIsa0JBUjVHO0FBVUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjlCLGFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoJ2V4cHJlc3MnKTtcclxuY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoJ2JvZHktcGFyc2VyJyk7XHJcblxyXG5jb25zdCBjb3JzID0gcmVxdWlyZSgnLi9jb3JzJyk7XHJcbmNvbnN0IHsgY2hlY2tTY2hlbWEgfSA9IHJlcXVpcmUoJ2V4cHJlc3MtdmFsaWRhdG9yJyk7XHJcbnZhciBhdXRoZW50aWNhdGUgPSByZXF1aXJlKCcuLi9taWRkbGV3YXJlL2F1dGhlbnRpY2F0ZScpO1xyXG52YXIgdmFsaWRhdGlvblJ1bGVzID0gcmVxdWlyZSgnLi4vbWlkZGxld2FyZS92YWxpZGF0aW9uJyk7XHJcbmNvbnN0IHRvdXJpc3RDb250cm9sbGVyID0gcmVxdWlyZSgnLi4vY29udHJvbGxlcnMvdG91cmlzdENvbnRyb2xsZXInKVxyXG5cclxuY29uc3QgdG91cmlzdFJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XHJcblxyXG50b3VyaXN0Um91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXNcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbnRvdXJpc3RSb3V0ZXIucm91dGUoJy8nKVxyXG4gICAgLm9wdGlvbnMoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcykgPT4geyByZXMuc2VuZFN0YXR1cygyMDApOyB9KVxyXG4gICAgLmdldChjb3JzLmNvcnMsICBhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0cylcclxuICAgIC5wb3N0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmFkZFRvdXJpc3QpXHJcbiAgICAucHV0KGNvcnMuY29yc1dpdGhPcHRpb25zLCAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMztcclxuICAgICAgICByZXMuZW5kKCdQVVQgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzJyk7XHJcbiAgICB9KVxyXG4gICAgLmRlbGV0ZShjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlBZG1pbiwgIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFsbFRvdXJpc3RzKTtcclxudG91cmlzdFJvdXRlci5yb3V0ZSgnL3NlYXJjaCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAucG9zdChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICB0b3VyaXN0Q29udHJvbGxlci5nZXRBbGxUb3VyaXN0c0J5TmFtZSk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBSb3V0ZXMgU3BlY2lmaWVkIGJ5IElEXHJcbi8vIFxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblxyXG50b3VyaXN0Um91dGVyLnJvdXRlKCcvOnRvdXJpc3RJZCcpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsICAgdG91cmlzdENvbnRyb2xsZXIuZ2V0VG91cmlzdERldGFpbHNCeUlkKVxyXG4gICAgLnBvc3QoY29ycy5jb3JzV2l0aE9wdGlvbnMsIChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAzO1xyXG4gICAgICAgIHJlcy5lbmQoJ1BPU1Qgb3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gL3RvdXJpc3RzLycgKyByZXEucGFyYW1zLnRvdXJpc3RJZCk7XHJcbiAgICB9KVxyXG4gICAgLnB1dChjb3JzLmNvcnNXaXRoT3B0aW9ucywgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsICB0b3VyaXN0Q29udHJvbGxlci51cGRhdGVUb3VyaXN0RGV0YWlsc0J5SWQpXHJcbiAgICAuZGVsZXRlKGNvcnMuY29yc1dpdGhPcHRpb25zLCAgYXV0aGVudGljYXRlLnZlcmlmeVVzZXIsIGF1dGhlbnRpY2F0ZS52ZXJpZnlNb2RlcmF0ZXIsIHRvdXJpc3RDb250cm9sbGVyLmRlbGV0ZUFUb3VyaXN0QnlJZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHRvdXJpc3RSb3V0ZXI7Il19\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nconst { checkSchema } = require('express-validator');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nvar validationRules = require('../middleware/validation');\\r\\nconst touristController = require('../controllers/touristController')\\r\\n\\r\\nconst touristRouter = express.Router();\\r\\n\\r\\ntouristRouter.use(bodyParser.json());\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getAllTourists)\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.addTourist)\\r\\n .put(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('PUT operation not supported on /tourists');\\r\\n })\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyAdmin, touristController.deleteAllTourists);\\r\\ntouristRouter.route('/search')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .post(cors.corsWithOptions, authenticate.verifyUser, touristController.getAllTouristsByName);\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Routes Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\ntouristRouter.route('/:touristId')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors, authenticate.verifyUser, touristController.getTouristDetailsById)\\r\\n .post(cors.corsWithOptions, (req, res, next) => {\\r\\n res.statusCode = 403;\\r\\n res.end('POST operation not supported on /tourists/' + req.params.touristId);\\r\\n })\\r\\n .put(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.updateTouristDetailsById)\\r\\n .delete(cors.corsWithOptions, authenticate.verifyUser, authenticate.verifyModerater, touristController.deleteATouristById);\\r\\n\\r\\nmodule.exports = touristRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/0a/touristRouter_0ad938586662daadc81c6cb1ad2e0f53.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2545\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9165,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9162,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":796,\"endOffset\":836,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1050,\"endOffset\":1152,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1333,\"endOffset\":1373,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1761,\"endOffset\":1801,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":1911,\"endOffset\":2038,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Tourists = require('../models/users');\\n\\nconst utils = require('../utils/utils'); // **********************************************************************************\\n// \\n// Tourist Operations \\n// \\n// **********************************************************************************\\n\\n\\nconst getAllTourists = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n }; // var obj = Object.assign(query, { $text: { $search: searchBy } });\\n\\n Tourists.find(query).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst getAllTouristsByName = (req, res, next) => {\\n var query = {\\n \\\"role\\\": \\\"user\\\"\\n };\\n\\n if (req.body.similarTo) {\\n var searchBy = req.body.similarTo || {};\\n query = {\\n \\\"role\\\": \\\"user\\\",\\n $text: {\\n $search: searchBy\\n }\\n };\\n }\\n\\n var sortby = req.body.sortBy || {};\\n Tourists.find(query).sort(sortby).then(tourists => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourists: tourists\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while getting data'\\n });\\n });\\n};\\n\\nconst addTourist = async (req, res, next) => {\\n const randomPassword = utils.password_generator(10);\\n var tourist = {\\n username: req.body.email,\\n firstname: req.body.firstname,\\n lastname: req.body.lastname,\\n email: req.body.email,\\n mobile: req.body.mobile,\\n role: 'user'\\n };\\n\\n try {\\n Tourists.register(new Tourists(tourist), randomPassword, (err, tourist) => {\\n if (err) {\\n res.statusCode = 403;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n } else {\\n tourist.save((err, tourist) => {\\n if (err) {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while Saving new user.'\\n });\\n }\\n\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n email: tourist.email,\\n password: randomPassword\\n });\\n });\\n }\\n });\\n } catch (error) {\\n var error = new Error(\\\"Error while registering new user.\\\");\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: err.message\\n });\\n }\\n};\\n\\nconst deleteAllTourists = (req, res, next) => {\\n Tourists.remove({\\n \\\"role\\\": \\\"user\\\"\\n }).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => next(err));\\n};\\n\\nexports.getAllTourists = getAllTourists;\\nexports.getAllTouristsByName = getAllTouristsByName;\\nexports.addTourist = addTourist;\\nexports.deleteAllTourists = deleteAllTourists; // **********************************************************************************\\n// \\n// Tourist Operations Specified by ID\\n// \\n// **********************************************************************************\\n\\nconst getTouristDetailsById = (req, res, next) => {\\n var touristId = req.params.touristId;\\n Tourists.findById(touristId).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst updateTouristDetailsById = (req, res, next) => {\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\n $set: req.body\\n }, {\\n new: true\\n }).then(tourist => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n tourist: tourist\\n });\\n }, err => {\\n res.statusCode = 404;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Could not find tourist with given ID'\\n });\\n }).catch(err => next(err));\\n};\\n\\nconst deleteATouristById = (req, res, next) => {\\n Tourists.findByIdAndRemove(req.params.touristId).then(resp => {\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n response: resp\\n });\\n }, err => next(err)).catch(err => {\\n res.statusCode = 500;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: false,\\n message: 'Error while deleting data'\\n });\\n });\\n};\\n\\nexports.getTouristDetailsById = getTouristDetailsById;\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\nexports.deleteATouristById = deleteATouristById;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvdXJpc3RDb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlRvdXJpc3RzIiwicmVxdWlyZSIsInV0aWxzIiwiZ2V0QWxsVG91cmlzdHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwicXVlcnkiLCJmaW5kIiwidGhlbiIsInRvdXJpc3RzIiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsImpzb24iLCJzdWNjZXNzIiwiZXJyIiwiY2F0Y2giLCJtZXNzYWdlIiwiZ2V0QWxsVG91cmlzdHNCeU5hbWUiLCJib2R5Iiwic2ltaWxhclRvIiwic2VhcmNoQnkiLCIkdGV4dCIsIiRzZWFyY2giLCJzb3J0YnkiLCJzb3J0QnkiLCJzb3J0IiwiYWRkVG91cmlzdCIsInJhbmRvbVBhc3N3b3JkIiwicGFzc3dvcmRfZ2VuZXJhdG9yIiwidG91cmlzdCIsInVzZXJuYW1lIiwiZW1haWwiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsIm1vYmlsZSIsInJvbGUiLCJyZWdpc3RlciIsInNhdmUiLCJwYXNzd29yZCIsImVycm9yIiwiRXJyb3IiLCJkZWxldGVBbGxUb3VyaXN0cyIsInJlbW92ZSIsInJlc3AiLCJyZXNwb25zZSIsImV4cG9ydHMiLCJnZXRUb3VyaXN0RGV0YWlsc0J5SWQiLCJ0b3VyaXN0SWQiLCJwYXJhbXMiLCJmaW5kQnlJZCIsInVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCIsImZpbmRCeUlkQW5kVXBkYXRlIiwiJHNldCIsIm5ldyIsImRlbGV0ZUFUb3VyaXN0QnlJZCIsImZpbmRCeUlkQW5kUmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxpQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUFyQixDLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUEsTUFBTUUsY0FBYyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLE1BQUlDLEtB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O0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCK0IsTUFBQUEsUUFBUSxFQUFFRDtBQUEzQixLQUFUO0FBQ0gsR0FMTCxFQUtRN0IsR0FBRCxJQUFTVCxJQUFJLENBQUNTLEdBQUQsQ0FMcEIsRUFNS0MsS0FOTCxDQU1ZRCxHQUFELElBQVM7QUFDWlYsSUFBQUEsR0FBRyxDQUFDTSxVQUFKLEdBQWlCLEdBQWpCO0FBQ0FOLElBQUFBLEdBQUcsQ0FBQ08sU0FBSixDQUFjLGNBQWQsRUFBOEIsa0JBQTlCO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVDLE1BQUFBLE9BQU8sRUFBRSxLQUFYO0FBQWtCRyxNQUFBQSxPQUFPLEVBQUU7QUFBM0IsS0FBVDtBQUNILEdBVkw7QUFXSCxDQVpEOztBQWNBNkIsT0FBTyxDQUFDQyxxQkFBUixHQUFnQ0EscUJBQWhDO0FBQ0FELE9BQU8sQ0FBQ0ssd0JBQVIsR0FBbUNBLHdCQUFuQztBQUNBTCxPQUFPLENBQUNTLGtCQUFSLEdBQTZCQSxrQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBUb3VyaXN0cyA9IHJlcXVpcmUoJy4uL21vZGVscy91c2VycycpO1xyXG5jb25zdCB1dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzL3V0aWxzJyk7XHJcblxyXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbi8vIFxyXG4vLyAgICAgICAgICAgICAgVG91cmlzdCBPcGVyYXRpb25zIFxyXG4vLyBcclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuY29uc3QgZ2V0QWxsVG91cmlzdHMgPSAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHZhciBxdWVyeSA9IHsgXCJyb2xlXCI6IFwidXNlclwiIH07XHJcbiAgICAvLyB2YXIgb2JqID0gT2JqZWN0LmFzc2lnbihxdWVyeSwgeyAkdGV4dDogeyAkc2VhcmNoOiBzZWFyY2hCeSB9IH0pO1xyXG4gICAgVG91cmlzdHMuZmluZChxdWVyeSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGdldEFsbFRvdXJpc3RzQnlOYW1lID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XHJcbiAgICB2YXIgcXVlcnkgPSB7IFwicm9sZVwiOiBcInVzZXJcIiB9O1xyXG4gICAgaWYgKHJlcS5ib2R5LnNpbWlsYXJUbykge1xyXG4gICAgICAgIHZhciBzZWFyY2hCeSA9IHJlcS5ib2R5LnNpbWlsYXJUbyB8fCB7fVxyXG4gICAgICAgIHF1ZXJ5ID0geyBcInJvbGVcIjogXCJ1c2VyXCIsICR0ZXh0OiB7ICRzZWFyY2g6IHNlYXJjaEJ5IH0gfVxyXG4gICAgfVxyXG5cclxuICAgIHZhciBzb3J0YnkgPSByZXEuYm9keS5zb3J0QnkgfHwge307XHJcbiAgICBUb3VyaXN0cy5maW5kKHF1ZXJ5KS5zb3J0KHNvcnRieSlcclxuICAgICAgICAudGhlbigodG91cmlzdHMpID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgdG91cmlzdHM6IHRvdXJpc3RzIH0pO1xyXG4gICAgICAgIH0sIChlcnIpID0+IG5leHQoZXJyKSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0Vycm9yIHdoaWxlIGdldHRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmNvbnN0IGFkZFRvdXJpc3QgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIGNvbnN0IHJhbmRvbVBhc3N3b3JkID0gdXRpbHMucGFzc3dvcmRfZ2VuZXJhdG9yKDEwKTtcclxuICAgIHZhciB0b3VyaXN0ID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiByZXEuYm9keS5lbWFpbCxcclxuICAgICAgICBmaXJzdG5hbWU6IHJlcS5ib2R5LmZpcnN0bmFtZSxcclxuICAgICAgICBsYXN0bmFtZTogcmVxLmJvZHkubGFzdG5hbWUsXHJcbiAgICAgICAgZW1haWw6IHJlcS5ib2R5LmVtYWlsLFxyXG4gICAgICAgIG1vYmlsZTogcmVxLmJvZHkubW9iaWxlLFxyXG4gICAgICAgIHJvbGU6ICd1c2VyJ1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBUb3VyaXN0cy5yZWdpc3RlcihuZXcgVG91cmlzdHModG91cmlzdCksXHJcbiAgICAgICAgICAgIHJhbmRvbVBhc3N3b3JkLCAoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiBlcnIubWVzc2FnZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdXJpc3Quc2F2ZSgoZXJyLCB0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgU2F2aW5nIG5ldyB1c2VyLicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgZW1haWw6IHRvdXJpc3QuZW1haWwsIHBhc3N3b3JkOiByYW5kb21QYXNzd29yZCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIG5ldyB1c2VyLlwiKTtcclxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcclxuICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBkZWxldGVBbGxUb3VyaXN0cyA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMucmVtb3ZlKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiBuZXh0KGVycikpO1xyXG59XHJcblxyXG5leHBvcnRzLmdldEFsbFRvdXJpc3RzID0gZ2V0QWxsVG91cmlzdHM7XHJcbmV4cG9ydHMuZ2V0QWxsVG91cmlzdHNCeU5hbWUgPSBnZXRBbGxUb3VyaXN0c0J5TmFtZTtcclxuZXhwb3J0cy5hZGRUb3VyaXN0ID0gYWRkVG91cmlzdDtcclxuZXhwb3J0cy5kZWxldGVBbGxUb3VyaXN0cyA9IGRlbGV0ZUFsbFRvdXJpc3RzO1xyXG5cclxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4vLyBcclxuLy8gICAgICAgICAgICAgIFRvdXJpc3QgT3BlcmF0aW9ucyBTcGVjaWZpZWQgYnkgSURcclxuLy8gXHJcbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbmNvbnN0IGdldFRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgdmFyIHRvdXJpc3RJZCA9IHJlcS5wYXJhbXMudG91cmlzdElkO1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWQodG91cmlzdElkKVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcclxuICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgcmVzLmpzb24oeyBzdWNjZXNzOiBmYWxzZSwgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIHRvdXJpc3Qgd2l0aCBnaXZlbiBJRCcgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKGVycikgPT4gbmV4dChlcnIpKTsgXHJcbn1cclxuXHJcbmNvbnN0IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgXHJcbiAgICBUb3VyaXN0cy5maW5kQnlJZEFuZFVwZGF0ZShyZXEucGFyYW1zLnRvdXJpc3RJZCwge1xyXG4gICAgICAgICRzZXQ6IHJlcS5ib2R5XHJcbiAgICB9LCB7IG5ldzogdHJ1ZSB9KVxyXG4gICAgICAgIC50aGVuKCh0b3VyaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IHRydWUsIHRvdXJpc3Q6IHRvdXJpc3QgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gIHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogZmFsc2UsIG1lc3NhZ2U6ICdDb3VsZCBub3QgZmluZCB0b3VyaXN0IHdpdGggZ2l2ZW4gSUQnIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IG5leHQoZXJyKSk7XHJcbn1cclxuXHJcbmNvbnN0IGRlbGV0ZUFUb3VyaXN0QnlJZCA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xyXG4gICAgVG91cmlzdHMuZmluZEJ5SWRBbmRSZW1vdmUocmVxLnBhcmFtcy50b3VyaXN0SWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIHJlcy5qc29uKHsgc3VjY2VzczogdHJ1ZSwgcmVzcG9uc2U6IHJlc3AgfSk7XHJcbiAgICAgICAgfSwgKGVycikgPT4gbmV4dChlcnIpKVxyXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xyXG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgICAgICByZXMuanNvbih7IHN1Y2Nlc3M6IGZhbHNlLCBtZXNzYWdlOiAnRXJyb3Igd2hpbGUgZGVsZXRpbmcgZGF0YScgfSk7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydHMuZ2V0VG91cmlzdERldGFpbHNCeUlkID0gZ2V0VG91cmlzdERldGFpbHNCeUlkO1xyXG5leHBvcnRzLnVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZCA9IHVwZGF0ZVRvdXJpc3REZXRhaWxzQnlJZDtcclxuZXhwb3J0cy5kZWxldGVBVG91cmlzdEJ5SWQgPSBkZWxldGVBVG91cmlzdEJ5SWQ7XHJcbiJdfQ==\",\"originalCode\":\"const Tourists = require('../models/users');\\r\\nconst utils = require('../utils/utils');\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations \\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getAllTourists = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n // var obj = Object.assign(query, { $text: { $search: searchBy } });\\r\\n Tourists.find(query)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst getAllTouristsByName = (req, res, next) => {\\r\\n var query = { \\\"role\\\": \\\"user\\\" };\\r\\n if (req.body.similarTo) {\\r\\n var searchBy = req.body.similarTo || {}\\r\\n query = { \\\"role\\\": \\\"user\\\", $text: { $search: searchBy } }\\r\\n }\\r\\n\\r\\n var sortby = req.body.sortBy || {};\\r\\n Tourists.find(query).sort(sortby)\\r\\n .then((tourists) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourists: tourists });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while getting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nconst addTourist = async (req, res, next) => {\\r\\n const randomPassword = utils.password_generator(10);\\r\\n var tourist = {\\r\\n username: req.body.email,\\r\\n firstname: req.body.firstname,\\r\\n lastname: req.body.lastname,\\r\\n email: req.body.email,\\r\\n mobile: req.body.mobile,\\r\\n role: 'user'\\r\\n }\\r\\n try {\\r\\n Tourists.register(new Tourists(tourist),\\r\\n randomPassword, (err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 403;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n else {\\r\\n tourist.save((err, tourist) => {\\r\\n if (err) {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while Saving new user.' });\\r\\n }\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, email: tourist.email, password: randomPassword });\\r\\n });\\r\\n }\\r\\n });\\r\\n } catch (error) {\\r\\n var error = new Error(\\\"Error while registering new user.\\\");\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: err.message });\\r\\n }\\r\\n}\\r\\n\\r\\nconst deleteAllTourists = (req, res, next) => {\\r\\n Tourists.remove({ \\\"role\\\": \\\"user\\\" })\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nexports.getAllTourists = getAllTourists;\\r\\nexports.getAllTouristsByName = getAllTouristsByName;\\r\\nexports.addTourist = addTourist;\\r\\nexports.deleteAllTourists = deleteAllTourists;\\r\\n\\r\\n// **********************************************************************************\\r\\n// \\r\\n// Tourist Operations Specified by ID\\r\\n// \\r\\n// **********************************************************************************\\r\\n\\r\\nconst getTouristDetailsById = (req, res, next) => {\\r\\n var touristId = req.params.touristId;\\r\\n Tourists.findById(touristId)\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err)); \\r\\n}\\r\\n\\r\\nconst updateTouristDetailsById = (req, res, next) => {\\r\\n \\r\\n Tourists.findByIdAndUpdate(req.params.touristId, {\\r\\n $set: req.body\\r\\n }, { new: true })\\r\\n .then((tourist) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, tourist: tourist });\\r\\n }, (err) => {\\r\\n res.statusCode = 404;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Could not find tourist with given ID' });\\r\\n })\\r\\n .catch((err) => next(err));\\r\\n}\\r\\n\\r\\nconst deleteATouristById = (req, res, next) => {\\r\\n Tourists.findByIdAndRemove(req.params.touristId)\\r\\n .then((resp) => {\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: true, response: resp });\\r\\n }, (err) => next(err))\\r\\n .catch((err) => {\\r\\n res.statusCode = 500;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({ success: false, message: 'Error while deleting data' });\\r\\n });\\r\\n}\\r\\n\\r\\nexports.getTouristDetailsById = getTouristDetailsById;\\r\\nexports.updateTouristDetailsById = updateTouristDetailsById;\\r\\nexports.deleteATouristById = deleteATouristById;\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/9e/touristController_9ee6bfceb00c4d02fdcd8e12f129a687.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2546\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":23082,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":23079,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTourists\",\"ranges\":[{\"startOffset\":417,\"endOffset\":954,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAllTouristsByName\",\"ranges\":[{\"startOffset\":986,\"endOffset\":1675,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1697,\"endOffset\":3064,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteAllTourists\",\"ranges\":[{\"startOffset\":3093,\"endOffset\":3369,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristDetailsById\",\"ranges\":[{\"startOffset\":3808,\"endOffset\":4292,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"updateTouristDetailsById\",\"ranges\":[{\"startOffset\":4328,\"endOffset\":4839,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"deleteATouristById\",\"ranges\":[{\"startOffset\":4869,\"endOffset\":5317,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const express = require('express');\\n\\nconst bodyParser = require('body-parser');\\n\\nconst cors = require('./cors');\\n\\nvar authenticate = require('../middleware/authenticate');\\n\\nconst dashboardController = require('../controllers/dashboardController');\\n\\nconst dashboardRouter = express.Router();\\ndashboardRouter.use(bodyParser.json());\\ndashboardRouter.route('/admin').options(cors.corsWithOptions, (req, res) => {\\n res.sendStatus(200);\\n}).get(cors.cors, authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\nmodule.exports = dashboardRouter;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZFJvdXRlci5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImJvZHlQYXJzZXIiLCJjb3JzIiwiYXV0aGVudGljYXRlIiwiZGFzaGJvYXJkQ29udHJvbGxlciIsImRhc2hib2FyZFJvdXRlciIsIlJvdXRlciIsInVzZSIsImpzb24iLCJyb3V0ZSIsIm9wdGlvbnMiLCJjb3JzV2l0aE9wdGlvbnMiLCJyZXEiLCJyZXMiLCJzZW5kU3RhdHVzIiwiZ2V0IiwidmVyaWZ5VXNlciIsInZlcmlmeUFkbWluIiwiZ2V0RGFzaGJvYXJkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLFFBQUQsQ0FBcEI7O0FBQ0EsSUFBSUcsWUFBWSxHQUFHSCxPQUFPLENBQUMsNEJBQUQsQ0FBMUI7O0FBQ0EsTUFBTUksbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQyxvQ0FBRCxDQUFuQzs7QUFFQSxNQUFNSyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixFQUF4QjtBQUVBRCxlQUFlLENBQUNFLEdBQWhCLENBQW9CTixVQUFVLENBQUNPLElBQVgsRUFBcEI7QUFFQUgsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixRQUF0QixFQUNLQyxPQURMLENBQ2FSLElBQUksQ0FBQ1MsZUFEbEIsRUFDbUMsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFBRUEsRUFBQUEsR0FBRyxDQUFDQyxVQUFKLENBQWUsR0FBZjtBQUFzQixDQUR6RSxFQUVLQyxHQUZMLENBRVNiLElBQUksQ0FBQ0EsSUFGZCxFQUVtQkMsWUFBWSxDQUFDYSxVQUZoQyxFQUU0Q2IsWUFBWSxDQUFDYyxXQUZ6RCxFQUVzRWIsbUJBQW1CLENBQUNjLFlBRjFGO0FBSUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQmYsZUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZSgnZXhwcmVzcycpO1xyXG5jb25zdCBib2R5UGFyc2VyID0gcmVxdWlyZSgnYm9keS1wYXJzZXInKTtcclxuXHJcbmNvbnN0IGNvcnMgPSByZXF1aXJlKCcuL2NvcnMnKTtcclxudmFyIGF1dGhlbnRpY2F0ZSA9IHJlcXVpcmUoJy4uL21pZGRsZXdhcmUvYXV0aGVudGljYXRlJyk7XHJcbmNvbnN0IGRhc2hib2FyZENvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9jb250cm9sbGVycy9kYXNoYm9hcmRDb250cm9sbGVyJyk7XHJcblxyXG5jb25zdCBkYXNoYm9hcmRSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xyXG5cclxuZGFzaGJvYXJkUm91dGVyLnVzZShib2R5UGFyc2VyLmpzb24oKSk7XHJcblxyXG5kYXNoYm9hcmRSb3V0ZXIucm91dGUoJy9hZG1pbicpXHJcbiAgICAub3B0aW9ucyhjb3JzLmNvcnNXaXRoT3B0aW9ucywgKHJlcSwgcmVzKSA9PiB7IHJlcy5zZW5kU3RhdHVzKDIwMCk7IH0pXHJcbiAgICAuZ2V0KGNvcnMuY29ycyxhdXRoZW50aWNhdGUudmVyaWZ5VXNlciwgYXV0aGVudGljYXRlLnZlcmlmeUFkbWluLCBkYXNoYm9hcmRDb250cm9sbGVyLmdldERhc2hib2FyZCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGRhc2hib2FyZFJvdXRlcjsiXX0=\",\"originalCode\":\"const express = require('express');\\r\\nconst bodyParser = require('body-parser');\\r\\n\\r\\nconst cors = require('./cors');\\r\\nvar authenticate = require('../middleware/authenticate');\\r\\nconst dashboardController = require('../controllers/dashboardController');\\r\\n\\r\\nconst dashboardRouter = express.Router();\\r\\n\\r\\ndashboardRouter.use(bodyParser.json());\\r\\n\\r\\ndashboardRouter.route('/admin')\\r\\n .options(cors.corsWithOptions, (req, res) => { res.sendStatus(200); })\\r\\n .get(cors.cors,authenticate.verifyUser, authenticate.verifyAdmin, dashboardController.getDashboard);\\r\\n\\r\\nmodule.exports = dashboardRouter;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/07/dashboardRouter_0791a49f2f45fc0f57ade98f27175c5c.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2547\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":2824,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":2821,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":482,\"endOffset\":522,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Place = require('../models/visitingPlaces');\\n\\nconst User = require('../models/users');\\n\\nconst Schedule = require('../models/schedules');\\n\\nexports.getDashboard = async (req, res, next) => {\\n try {\\n const users_count = (await User.find().countDocuments()) - 1;\\n const tourist_count_total = await User.find({\\n \\\"role\\\": \\\"user\\\"\\n }).countDocuments();\\n const assistant_count_total = await User.find({\\n \\\"role\\\": \\\"moderater\\\"\\n }).countDocuments();\\n const tourist_count_in = await User.find({\\n \\\"role\\\": \\\"user\\\",\\n \\\"userstate\\\": \\\"in\\\"\\n }).countDocuments();\\n const place_count = await Place.find().countDocuments();\\n const place_names = await Place.find({}, {\\n _id: 0,\\n name: 1\\n });\\n const place_locations = await Place.find({}, {\\n _id: 0,\\n \\\"location.coordinates\\\": 1\\n });\\n var locations = [];\\n place_locations.forEach(element => {\\n var longitude = element.location.coordinates[0];\\n var latitude = element.location.coordinates[1];\\n locations.push({\\n longitude,\\n latitude\\n });\\n });\\n const schedules_count_total = await Schedule.find().countDocuments();\\n const schedules_count_new = await Schedule.find({\\n \\\"state\\\": \\\"new\\\"\\n }).countDocuments();\\n const schedules_count_canceled = await Schedule.find({\\n \\\"state\\\": \\\"cancled\\\"\\n }).countDocuments();\\n const schedules_count_notcompleted = await Schedule.find({\\n \\\"state\\\": \\\"notcompleted\\\"\\n }).countDocuments();\\n const schedules_count_completed = await Schedule.find({\\n \\\"state\\\": \\\"completed\\\"\\n }).countDocuments();\\n res.statusCode = 200;\\n res.setHeader('Content-Type', 'application/json');\\n res.json({\\n success: true,\\n dashboardValues: {\\n users_count: users_count,\\n tourist_count_total: tourist_count_total,\\n assistant_count_total: assistant_count_total,\\n tourist_count_in: tourist_count_in,\\n place_count: place_count,\\n place_names: place_names,\\n place_locations: locations,\\n schedules_count_total: schedules_count_total,\\n schedules_count_new: schedules_count_new,\\n schedules_count_canceled: schedules_count_canceled,\\n schedules_count_notcompleted: schedules_count_notcompleted,\\n schedules_count_completed: schedules_count_completed\\n }\\n });\\n } catch (err) {\\n next(err);\\n }\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhc2hib2FyZENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUGxhY2UiLCJyZXF1aXJlIiwiVXNlciIsIlNjaGVkdWxlIiwiZXhwb3J0cyIsImdldERhc2hib2FyZCIsInJlcSIsInJlcyIsIm5leHQiLCJ1c2Vyc19jb3VudCIsImZpbmQiLCJjb3VudERvY3VtZW50cyIsInRvdXJpc3RfY291bnRfdG90YWwiLCJhc3Npc3RhbnRfY291bnRfdG90YWwiLCJ0b3VyaXN0X2NvdW50X2luIiwicGxhY2VfY291bnQiLCJwbGFjZV9uYW1lcyIsIl9pZCIsIm5hbWUiLCJwbGFjZV9sb2NhdGlvbnMiLCJsb2NhdGlvbnMiLCJmb3JFYWNoIiwiZWxlbWVudCIsImxvbmdpdHVkZSIsImxvY2F0aW9uIiwiY29vcmRpbmF0ZXMiLCJsYXRpdHVkZSIsInB1c2giLCJzY2hlZHVsZXNfY291bnRfdG90YWwiLCJzY2hlZHVsZXNfY291bnRfbmV3Iiwic2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkIiwic2NoZWR1bGVzX2NvdW50X25vdGNvbXBsZXRlZCIsInNjaGVkdWxlc19jb3VudF9jb21wbGV0ZWQiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwianNvbiIsInN1Y2Nlc3MiLCJkYXNoYm9hcmRWYWx1ZXMiLCJlcnIiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLDBCQUFELENBQXJCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQXBCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXhCOztBQUVBRyxPQUFPLENBQUNDLFlBQVIsR0FBdUIsT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QyxNQUFJO0FBQ0EsVUFBTUMsV0FBVyxHQUFHLE9BQU1QLElBQUksQ0FBQ1EsSUFBTCxHQUFZQyxjQUFaLEVBQU4sSUFBcUMsQ0FBekQ7QUFDQSxVQUFNQyxtQkFB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QUFFQSw0QkFYRjtBQVk1QkMsUUFBQUEseUJBQXlCLEVBQUVBO0FBWkM7QUFEM0IsS0FBVDtBQWdCSCxHQXRDRCxDQXNDRSxPQUFPTSxHQUFQLEVBQVk7QUFDVjlCLElBQUFBLElBQUksQ0FBQzhCLEdBQUQsQ0FBSjtBQUNIO0FBQ0osQ0ExQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQbGFjZSA9IHJlcXVpcmUoJy4uL21vZGVscy92aXNpdGluZ1BsYWNlcycpO1xyXG5jb25zdCBVc2VyID0gcmVxdWlyZSgnLi4vbW9kZWxzL3VzZXJzJyk7XHJcbmNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5cclxuZXhwb3J0cy5nZXREYXNoYm9hcmQgPSBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgdXNlcnNfY291bnQgPSBhd2FpdCBVc2VyLmZpbmQoKS5jb3VudERvY3VtZW50cygpIC0gMTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3QgYXNzaXN0YW50X2NvdW50X3RvdGFsID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwibW9kZXJhdGVyXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCB0b3VyaXN0X2NvdW50X2luID0gYXdhaXQgVXNlci5maW5kKHsgXCJyb2xlXCI6IFwidXNlclwiLCBcInVzZXJzdGF0ZVwiOiBcImluXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBwbGFjZV9jb3VudCA9IGF3YWl0IFBsYWNlLmZpbmQoKS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHBsYWNlX25hbWVzID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIG5hbWU6IDEgfSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VfbG9jYXRpb25zID0gYXdhaXQgUGxhY2UuZmluZCh7fSwgeyBfaWQ6IDAsIFwibG9jYXRpb24uY29vcmRpbmF0ZXNcIjogMSB9KTtcclxuICAgICAgICB2YXIgbG9jYXRpb25zID0gW107XHJcbiAgICAgICAgcGxhY2VfbG9jYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBsb25naXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzBdO1xyXG4gICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBlbGVtZW50LmxvY2F0aW9uLmNvb3JkaW5hdGVzWzFdO1xyXG4gICAgICAgICAgICBsb2NhdGlvbnMucHVzaCh7IGxvbmdpdHVkZSwgbGF0aXR1ZGUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X3RvdGFsID0gYXdhaXQgU2NoZWR1bGUuZmluZCgpLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X25ldyA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwibmV3XCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuICAgICAgICBjb25zdCBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcImNhbmNsZWRcIiB9KS5jb3VudERvY3VtZW50cygpO1xyXG4gICAgICAgIGNvbnN0IHNjaGVkdWxlc19jb3VudF9ub3Rjb21wbGV0ZWQgPSBhd2FpdCBTY2hlZHVsZS5maW5kKHsgXCJzdGF0ZVwiOiBcIm5vdGNvbXBsZXRlZFwiIH0pLmNvdW50RG9jdW1lbnRzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZCA9IGF3YWl0IFNjaGVkdWxlLmZpbmQoeyBcInN0YXRlXCI6IFwiY29tcGxldGVkXCIgfSkuY291bnREb2N1bWVudHMoKTtcclxuXHJcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XHJcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICByZXMuanNvbih7XHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsIGRhc2hib2FyZFZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgdXNlcnNfY291bnQ6IHVzZXJzX2NvdW50LFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF90b3RhbDogdG91cmlzdF9jb3VudF90b3RhbCxcclxuICAgICAgICAgICAgICAgIGFzc2lzdGFudF9jb3VudF90b3RhbDogYXNzaXN0YW50X2NvdW50X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgdG91cmlzdF9jb3VudF9pbjogdG91cmlzdF9jb3VudF9pbixcclxuICAgICAgICAgICAgICAgIHBsYWNlX2NvdW50OiBwbGFjZV9jb3VudCxcclxuICAgICAgICAgICAgICAgIHBsYWNlX25hbWVzOiBwbGFjZV9uYW1lcyxcclxuICAgICAgICAgICAgICAgIHBsYWNlX2xvY2F0aW9uczogbG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X3RvdGFsOiBzY2hlZHVsZXNfY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbmV3OiBzY2hlZHVsZXNfY291bnRfbmV3LFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NhbmNlbGVkOiBzY2hlZHVsZXNfY291bnRfY2FuY2VsZWQsXHJcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkOiBzY2hlZHVsZXNfY291bnRfbm90Y29tcGxldGVkLFxyXG4gICAgICAgICAgICAgICAgc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZDogc2NoZWR1bGVzX2NvdW50X2NvbXBsZXRlZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBuZXh0KGVycik7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==\",\"originalCode\":\"const Place = require('../models/visitingPlaces');\\r\\nconst User = require('../models/users');\\r\\nconst Schedule = require('../models/schedules');\\r\\n\\r\\nexports.getDashboard = async (req, res, next) => {\\r\\n try {\\r\\n const users_count = await User.find().countDocuments() - 1;\\r\\n const tourist_count_total = await User.find({ \\\"role\\\": \\\"user\\\" }).countDocuments();\\r\\n const assistant_count_total = await User.find({ \\\"role\\\": \\\"moderater\\\" }).countDocuments();\\r\\n const tourist_count_in = await User.find({ \\\"role\\\": \\\"user\\\", \\\"userstate\\\": \\\"in\\\" }).countDocuments();\\r\\n const place_count = await Place.find().countDocuments();\\r\\n const place_names = await Place.find({}, { _id: 0, name: 1 });\\r\\n const place_locations = await Place.find({}, { _id: 0, \\\"location.coordinates\\\": 1 });\\r\\n var locations = [];\\r\\n place_locations.forEach(element => {\\r\\n var longitude = element.location.coordinates[0];\\r\\n var latitude = element.location.coordinates[1];\\r\\n locations.push({ longitude, latitude });\\r\\n });\\r\\n const schedules_count_total = await Schedule.find().countDocuments();\\r\\n const schedules_count_new = await Schedule.find({ \\\"state\\\": \\\"new\\\" }).countDocuments();\\r\\n const schedules_count_canceled = await Schedule.find({ \\\"state\\\": \\\"cancled\\\" }).countDocuments();\\r\\n const schedules_count_notcompleted = await Schedule.find({ \\\"state\\\": \\\"notcompleted\\\" }).countDocuments();\\r\\n const schedules_count_completed = await Schedule.find({ \\\"state\\\": \\\"completed\\\" }).countDocuments();\\r\\n\\r\\n res.statusCode = 200;\\r\\n res.setHeader('Content-Type', 'application/json');\\r\\n res.json({\\r\\n success: true, dashboardValues: {\\r\\n users_count: users_count,\\r\\n tourist_count_total: tourist_count_total,\\r\\n assistant_count_total: assistant_count_total,\\r\\n tourist_count_in: tourist_count_in,\\r\\n place_count: place_count,\\r\\n place_names: place_names,\\r\\n place_locations: locations,\\r\\n schedules_count_total: schedules_count_total,\\r\\n schedules_count_new: schedules_count_new,\\r\\n schedules_count_canceled: schedules_count_canceled,\\r\\n schedules_count_notcompleted: schedules_count_notcompleted,\\r\\n schedules_count_completed: schedules_count_completed\\r\\n }\\r\\n });\\r\\n } catch (err) {\\r\\n next(err);\\r\\n }\\r\\n}\\r\\n\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/34/dashboardController_34872bbac017cfae6fcc33926d204118.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2548\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":9854,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":9851,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
.exports.getDashboard\",\"ranges\":[{\"startOffset\":256,\"endOffset\":2463,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const app = require('../../app');\\n\\nconst server = require(\\\"supertest\\\")(app);\\n\\nconst jwt_decode = require('jwt-decode');\\n\\nconst Users = require('../../models/users');\\n\\nvar userToken;\\nvar assistantToken;\\nvar adminToken;\\nconst admin = {\\n \\\"firstname\\\": \\\"Admin\\\",\\n \\\"lastname\\\": \\\"Admin\\\",\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\n \\\"password\\\": \\\"admin-password\\\"\\n};\\nconst assistant = {\\n \\\"firstname\\\": \\\"Dinesh\\\",\\n \\\"lastname\\\": \\\"Chandimal\\\",\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\n};\\nconst tourist = {\\n \\\"firstname\\\": \\\"Sunil\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\n};\\n\\nconst signupAdmin = async () => {\\n await Users.deleteMany({});\\n await server.post(\\\"/users/signup/admin\\\").send(admin);\\n};\\n\\nconst getAdminToken = async () => {\\n if (adminToken) {\\n return adminToken;\\n }\\n\\n await signupAdmin();\\n var creds = {\\n username: admin.email,\\n password: admin.password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n adminToken = response.body.token;\\n return adminToken;\\n};\\n\\nconst addAssistant = async () => {\\n if (!adminToken) {\\n await getAdminToken();\\n }\\n\\n const response = await server.post(\\\"/employees\\\").set(\\\"Authorization\\\", `Bearer ${adminToken}`).send(assistant).expect(200);\\n return response.body.password;\\n};\\n\\nconst getAssistantToken = async () => {\\n if (assistantToken) {\\n return assistantToken;\\n }\\n\\n const password = await addAssistant();\\n var creds = {\\n username: assistant.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n assistantToken = response.body.token;\\n return assistantToken;\\n};\\n\\nconst addTourist = async () => {\\n if (!assistantToken) {\\n await getAssistantToken();\\n }\\n\\n const response = await server.post(\\\"/tourists\\\").set(\\\"Authorization\\\", `Bearer ${assistantToken}`).send(tourist).expect(200);\\n return response.body.password;\\n};\\n\\nconst getTouristToken = async () => {\\n if (userToken) {\\n return userToken;\\n }\\n\\n const password = await addTourist();\\n var creds = {\\n username: tourist.email,\\n password: password\\n };\\n const response = await server.post(\\\"/users/login\\\").send(creds);\\n userToken = response.body.token;\\n return userToken;\\n};\\n\\nconst getExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Namal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\n \\\"mobile\\\": \\\"981114844\\\",\\n \\\"rommnumber\\\": \\\"41\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n return tourist._id.toString();\\n};\\n\\nconst getNonExistingId = async () => {\\n const newTourist = {\\n \\\"firstname\\\": \\\"Kamal\\\",\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\n };\\n const tourist = new Users(newTourist);\\n await tourist.save();\\n await tourist.remove();\\n return tourist._id.toString();\\n};\\n\\nconst decodeToken = token => {\\n var decoded = jwt_decode(token);\\n return decoded;\\n};\\n\\nmodule.exports = {\\n getAdminToken,\\n getAssistantToken,\\n getTouristToken,\\n decodeToken,\\n addTourist,\\n getTouristToken,\\n getExistingId,\\n getNonExistingId\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXJfaGVscGVyLmpzIl0sIm5hbWVzIjpbImFwcCIsInJlcXVpcmUiLCJzZXJ2ZXIiLCJqd3RfZGVjb2RlIiwiVXNlcnMiLCJ1c2VyVG9rZW4iLCJhc3Npc3RhbnRUb2tlbiIsImFkbWluVG9rZW4iLCJhZG1pbiIsImFzc2lzdGFudCIsInRvdXJpc3QiLCJzaWdudXBBZG1pbiIsImRlbGV0ZU1hbnkiLCJwb3N0Iiwic2VuZCIsImdldEFkbWluVG9rZW4iLCJjcmVkcyIsInVzZXJuYW1lIiwiZW1haWwiLCJwYXNzd29yZCIsInJlc3BvbnNlIiwiYm9keSIsInRva2VuIiwiYWRkQXNzaXN0YW50Iiwic2V0IiwiZXhwZWN0IiwiZ2V0QXNzaXN0YW50VG9rZW4iLCJhZGRUb3VyaXN0IiwiZ2V0VG91cmlzdFRva2VuIiwiZ2V0RXhpc3RpbmdJZCIsIm5ld1RvdXJpc3QiLCJzYXZlIiwiX2lkIiwidG9TdHJpbmciLCJnZXROb25FeGlzdGluZ0lkIiwicmVtb3ZlIiwiZGVjb2RlVG9rZW4iLCJkZWNvZGVkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsV0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxXQUFELENBQVAsQ0FBcUJELEdBQXJCLENBQWY7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHRixPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNRyxLQUFLLEdBQUdILE9BQU8sQ0FBQyxvQkFBRCxDQUFyQjs7QUFFQSxJQUFJSSxTQUFKO0FBQ0EsSUFBSUMsY0FBSjtBQUNBLElBQUlDLFVBQUo7QUFDQSxNQUFNQyxLQUFLLEdBQUc7QUFDVixlQUFhLE9BREg7QUFFVixjQUFZLE9BRkY7QUFHVixXQUFTLGlCQUhDO0FBSVYsY0FBWTtBQUpGLENBQWQ7QUFNQSxNQUFNQyxTQUFTLEdBQUc7QUFDZCxlQUFhLFFBREM7QUFFZCxjQUFZLFdBRkU7QUFHZCxXQUFTO0FB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QyxFQUFBQSxlQUQvRDtBQUNnRkMsRUFBQUEsYUFEaEY7QUFDK0ZLLEVBQUFBO0FBRC9GLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXBwID0gcmVxdWlyZSgnLi4vLi4vYXBwJyk7XHJcbmNvbnN0IHNlcnZlciA9IHJlcXVpcmUoXCJzdXBlcnRlc3RcIikoYXBwKTtcclxuY29uc3Qgand0X2RlY29kZSA9IHJlcXVpcmUoJ2p3dC1kZWNvZGUnKTtcclxuY29uc3QgVXNlcnMgPSByZXF1aXJlKCcuLi8uLi9tb2RlbHMvdXNlcnMnKTtcclxuXHJcbnZhciB1c2VyVG9rZW47XHJcbnZhciBhc3Npc3RhbnRUb2tlbjtcclxudmFyIGFkbWluVG9rZW47XHJcbmNvbnN0IGFkbWluID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJBZG1pblwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkFkbWluXCIsXHJcbiAgICBcImVtYWlsXCI6IFwiYWRtaW5AZ21haWwuY29tXCIsXHJcbiAgICBcInBhc3N3b3JkXCI6IFwiYWRtaW4tcGFzc3dvcmRcIlxyXG59O1xyXG5jb25zdCBhc3Npc3RhbnQgPSB7XHJcbiAgICBcImZpcnN0bmFtZVwiOiBcIkRpbmVzaFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkNoYW5kaW1hbFwiLFxyXG4gICAgXCJlbWFpbFwiOiBcImRpbmVzaGNoYW5kaW1hbEBnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCB0b3VyaXN0ID0ge1xyXG4gICAgXCJmaXJzdG5hbWVcIjogXCJTdW5pbFwiLFxyXG4gICAgXCJsYXN0bmFtZVwiOiBcIkZlcm5hbWRvXCIsXHJcbiAgICBcImVtYWlsXCI6IFwic3VuaWxGZXJuYW1kb0BnbWFpbC5jb21cIlxyXG59O1xyXG5jb25zdCBzaWdudXBBZG1pbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGF3YWl0IFVzZXJzLmRlbGV0ZU1hbnkoe30pO1xyXG4gICAgYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvdXNlcnMvc2lnbnVwL2FkbWluXCIpXHJcbiAgICAgICAgLnNlbmQoYWRtaW4pO1xyXG59O1xyXG5cclxuY29uc3QgZ2V0QWRtaW5Ub2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhZG1pblRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbiAgICB9XHJcbiAgICBhd2FpdCBzaWdudXBBZG1pbigpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiBhZG1pbi5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogYWRtaW4ucGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFkbWluVG9rZW4gPSByZXNwb25zZS5ib2R5LnRva2VuO1xyXG4gICAgcmV0dXJuIGFkbWluVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGFkZEFzc2lzdGFudCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYWRtaW5Ub2tlbikge1xyXG4gICAgICAgIGF3YWl0IGdldEFkbWluVG9rZW4oKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc2VydmVyXHJcbiAgICAgICAgLnBvc3QoXCIvZW1wbG95ZWVzXCIpXHJcbiAgICAgICAgLnNldChcIkF1dGhvcml6YXRpb25cIiwgYEJlYXJlciAke2FkbWluVG9rZW59YClcclxuICAgICAgICAuc2VuZChhc3Npc3RhbnQpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRBc3Npc3RhbnRUb2tlbiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChhc3Npc3RhbnRUb2tlbikge1xyXG4gICAgICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkQXNzaXN0YW50KCk7XHJcbiAgICB2YXIgY3JlZHMgPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IGFzc2lzdGFudC5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogcGFzc3dvcmQsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi91c2Vycy9sb2dpblwiKVxyXG4gICAgICAgIC5zZW5kKGNyZWRzKTtcclxuICAgIGFzc2lzdGFudFRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiBhc3Npc3RhbnRUb2tlbjtcclxufVxyXG5cclxuY29uc3QgYWRkVG91cmlzdCA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmICghYXNzaXN0YW50VG9rZW4pIHtcclxuICAgICAgICBhd2FpdCBnZXRBc3Npc3RhbnRUb2tlbigpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXJ2ZXJcclxuICAgICAgICAucG9zdChcIi90b3VyaXN0c1wiKVxyXG4gICAgICAgIC5zZXQoXCJBdXRob3JpemF0aW9uXCIsIGBCZWFyZXIgJHthc3Npc3RhbnRUb2tlbn1gKVxyXG4gICAgICAgIC5zZW5kKHRvdXJpc3QpXHJcbiAgICAgICAgLmV4cGVjdCgyMDApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmJvZHkucGFzc3dvcmQ7XHJcbn07XHJcblxyXG5jb25zdCBnZXRUb3VyaXN0VG9rZW4gPSBhc3luYyAoKSA9PiB7XHJcbiAgICBpZiAodXNlclRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIHVzZXJUb2tlbjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhc3N3b3JkID0gYXdhaXQgYWRkVG91cmlzdCgpO1xyXG4gICAgdmFyIGNyZWRzID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiB0b3VyaXN0LmVtYWlsLFxyXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlcnZlclxyXG4gICAgICAgIC5wb3N0KFwiL3VzZXJzL2xvZ2luXCIpXHJcbiAgICAgICAgLnNlbmQoY3JlZHMpO1xyXG4gICAgdXNlclRva2VuID0gcmVzcG9uc2UuYm9keS50b2tlbjtcclxuICAgIHJldHVybiB1c2VyVG9rZW47XHJcbn1cclxuXHJcbmNvbnN0IGdldEV4aXN0aW5nSWQgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBuZXdUb3VyaXN0ID0ge1xyXG4gICAgICAgIFwiZmlyc3RuYW1lXCI6IFwiTmFtYWxcIixcclxuICAgICAgICBcImxhc3RuYW1lXCI6IFwiRmVybmFtZG9cIixcclxuICAgICAgICBcImVtYWlsXCI6IFwibmFtYWxmZXJuYW1kb0BnbWFpbC5jb21cIixcclxuICAgICAgICBcIm1vYmlsZVwiOiBcIjk4MTExNDg0NFwiLFxyXG4gICAgICAgIFwicm9tbW51bWJlclwiIDogXCI0MVwiLFxyXG5cclxuICAgIH1cclxuICAgIGNvbnN0IHRvdXJpc3QgPSBuZXcgVXNlcnMobmV3VG91cmlzdCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnNhdmUoKTtcclxuXHJcbiAgICByZXR1cm4gdG91cmlzdC5faWQudG9TdHJpbmcoKTtcclxuXHJcbiAgICBcclxufVxyXG5cclxuY29uc3QgZ2V0Tm9uRXhpc3RpbmdJZCA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1RvdXJpc3QgPSB7XHJcbiAgICAgICAgXCJmaXJzdG5hbWVcIjogXCJLYW1hbFwiLFxyXG4gICAgICAgIFwibGFzdG5hbWVcIjogXCJGZXJuYW1kb1wiLFxyXG4gICAgICAgIFwiZW1haWxcIjogXCJrYW1hbGZlcm5hbWRvQGdtYWlsLmNvbVwiXHJcbiAgICB9XHJcbiAgICBjb25zdCB0b3VyaXN0ID0gbmV3IFVzZXJzKG5ld1RvdXJpc3QpO1xyXG4gICAgYXdhaXQgdG91cmlzdC5zYXZlKCk7XHJcbiAgICBhd2FpdCB0b3VyaXN0LnJlbW92ZSgpO1xyXG5cclxuICAgIHJldHVybiB0b3VyaXN0Ll9pZC50b1N0cmluZygpO1xyXG59XHJcblxyXG5jb25zdCBkZWNvZGVUb2tlbiA9ICh0b2tlbikgPT4ge1xyXG4gICAgdmFyIGRlY29kZWQgPSBqd3RfZGVjb2RlKHRva2VuKTtcclxuICAgIHJldHVybiBkZWNvZGVkO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGdldEFkbWluVG9rZW4sIGdldEFzc2lzdGFudFRva2VuLCBnZXRUb3VyaXN0VG9rZW4sIGRlY29kZVRva2VuLCBhZGRUb3VyaXN0LCBnZXRUb3VyaXN0VG9rZW4gLGdldEV4aXN0aW5nSWQgLGdldE5vbkV4aXN0aW5nSWRcclxufVxyXG4iXX0=\",\"originalCode\":\"const app = require('../../app');\\r\\nconst server = require(\\\"supertest\\\")(app);\\r\\nconst jwt_decode = require('jwt-decode');\\r\\nconst Users = require('../../models/users');\\r\\n\\r\\nvar userToken;\\r\\nvar assistantToken;\\r\\nvar adminToken;\\r\\nconst admin = {\\r\\n \\\"firstname\\\": \\\"Admin\\\",\\r\\n \\\"lastname\\\": \\\"Admin\\\",\\r\\n \\\"email\\\": \\\"admin@gmail.com\\\",\\r\\n \\\"password\\\": \\\"admin-password\\\"\\r\\n};\\r\\nconst assistant = {\\r\\n \\\"firstname\\\": \\\"Dinesh\\\",\\r\\n \\\"lastname\\\": \\\"Chandimal\\\",\\r\\n \\\"email\\\": \\\"dineshchandimal@gmail.com\\\"\\r\\n};\\r\\nconst tourist = {\\r\\n \\\"firstname\\\": \\\"Sunil\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"sunilFernamdo@gmail.com\\\"\\r\\n};\\r\\nconst signupAdmin = async () => {\\r\\n await Users.deleteMany({});\\r\\n await server\\r\\n .post(\\\"/users/signup/admin\\\")\\r\\n .send(admin);\\r\\n};\\r\\n\\r\\nconst getAdminToken = async () => {\\r\\n if (adminToken) {\\r\\n return adminToken;\\r\\n }\\r\\n await signupAdmin();\\r\\n var creds = {\\r\\n username: admin.email,\\r\\n password: admin.password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n adminToken = response.body.token;\\r\\n return adminToken;\\r\\n}\\r\\n\\r\\nconst addAssistant = async () => {\\r\\n if (!adminToken) {\\r\\n await getAdminToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/employees\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${adminToken}`)\\r\\n .send(assistant)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getAssistantToken = async () => {\\r\\n if (assistantToken) {\\r\\n return assistantToken;\\r\\n }\\r\\n const password = await addAssistant();\\r\\n var creds = {\\r\\n username: assistant.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n assistantToken = response.body.token;\\r\\n return assistantToken;\\r\\n}\\r\\n\\r\\nconst addTourist = async () => {\\r\\n if (!assistantToken) {\\r\\n await getAssistantToken();\\r\\n }\\r\\n const response = await server\\r\\n .post(\\\"/tourists\\\")\\r\\n .set(\\\"Authorization\\\", `Bearer ${assistantToken}`)\\r\\n .send(tourist)\\r\\n .expect(200);\\r\\n return response.body.password;\\r\\n};\\r\\n\\r\\nconst getTouristToken = async () => {\\r\\n if (userToken) {\\r\\n return userToken;\\r\\n }\\r\\n const password = await addTourist();\\r\\n var creds = {\\r\\n username: tourist.email,\\r\\n password: password,\\r\\n };\\r\\n const response = await server\\r\\n .post(\\\"/users/login\\\")\\r\\n .send(creds);\\r\\n userToken = response.body.token;\\r\\n return userToken;\\r\\n}\\r\\n\\r\\nconst getExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Namal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"namalfernamdo@gmail.com\\\",\\r\\n \\\"mobile\\\": \\\"981114844\\\",\\r\\n \\\"rommnumber\\\" : \\\"41\\\",\\r\\n\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n\\r\\n return tourist._id.toString();\\r\\n\\r\\n \\r\\n}\\r\\n\\r\\nconst getNonExistingId = async () => {\\r\\n const newTourist = {\\r\\n \\\"firstname\\\": \\\"Kamal\\\",\\r\\n \\\"lastname\\\": \\\"Fernamdo\\\",\\r\\n \\\"email\\\": \\\"kamalfernamdo@gmail.com\\\"\\r\\n }\\r\\n const tourist = new Users(newTourist);\\r\\n await tourist.save();\\r\\n await tourist.remove();\\r\\n\\r\\n return tourist._id.toString();\\r\\n}\\r\\n\\r\\nconst decodeToken = (token) => {\\r\\n var decoded = jwt_decode(token);\\r\\n return decoded;\\r\\n}\\r\\n\\r\\nmodule.exports = {\\r\\n getAdminToken, getAssistantToken, getTouristToken, decodeToken, addTourist, getTouristToken ,getExistingId ,getNonExistingId\\r\\n}\\r\\n\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/5d/user_helper_5d6019747344ffe72872c6622cdf23b3.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"2692\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\user_helper.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":13241,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":13238,\"count\":1}],\"isBlockCoverage\":false},{\"functionName\":\"signupAdmin\",\"ranges\":[{\"startOffset\":677,\"endOffset\":778,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"getAdminToken\",\"ranges\":[{\"startOffset\":803,\"endOffset\":1089,\"count\":3}],\"isBlockCoverage\":false},{\"functionName\":\"addAssistant\",\"ranges\":[{\"startOffset\":1113,\"endOffset\":1339,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getAssistantToken\",\"ranges\":[{\"startOffset\":1368,\"endOffset\":1686,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"addTourist\",\"ranges\":[{\"startOffset\":1708,\"endOffset\":1943,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getTouristToken\",\"ranges\":[{\"startOffset\":1970,\"endOffset\":2264,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getExistingId\",\"ranges\":[{\"startOffset\":2289,\"endOffset\":2574,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"getNonExistingId\",\"ranges\":[{\"startOffset\":2602,\"endOffset\":2862,\"count\":0}],\"isBlockCoverage\":false},{\"functionName\":\"decodeToken\",\"ranges\":[{\"startOffset\":2885,\"endOffset\":2950,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const Schedule = require('../../models/schedules');\\n\\nconst mockSchedule = require('../mockData/schedule.data');\\n\\nconst mongoose = require('mongoose');\\n\\nconst addSchedulesToDb = async id => {\\n const schedules = await mockSchedule(id);\\n const scheduleObjects = schedules.map(schedule => new Schedule(schedule));\\n const promiseArray = scheduleObjects.map(schedule => schedule.save());\\n await Promise.all(promiseArray);\\n};\\n\\nconst getExistingId = async () => {\\n const newSchedule = {\\n \\\"user\\\": mongoose.Types.ObjectId(),\\n \\\"place\\\": mongoose.Types.ObjectId(),\\n \\\"date\\\": Date(),\\n \\\"travellingMethod\\\": 'Car'\\n };\\n const schedule = new Schedule(newSchedule);\\n await schedule.save();\\n return schedule._id.toString();\\n};\\n\\nconst getNonExistingId = async () => {\\n const newSchedule = {\\n \\\"user\\\": mongoose.Types.ObjectId(),\\n \\\"place\\\": mongoose.Types.ObjectId(),\\n \\\"date\\\": Date(),\\n \\\"travellingMethod\\\": 'Car'\\n };\\n const schedule = new Schedule(newSchedule);\\n await schedule.save();\\n await schedule.remove();\\n return schedule._id.toString();\\n};\\n\\nconst schedulesInDb = async () => {\\n const places = await Note.find({});\\n return places;\\n};\\n\\nmodule.exports = {\\n addSchedulesToDb,\\n getExistingId,\\n getNonExistingId,\\n schedulesInDb\\n};\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlX2hlbHBlci5qcyJdLCJuYW1lcyI6WyJTY2hlZHVsZSIsInJlcXVpcmUiLCJtb2NrU2NoZWR1bGUiLCJtb25nb29zZSIsImFkZFNjaGVkdWxlc1RvRGIiLCJpZCIsInNjaGVkdWxlcyIsInNjaGVkdWxlT2JqZWN0cyIsIm1hcCIsInNjaGVkdWxlIiwicHJvbWlzZUFycmF5Iiwic2F2ZSIsIlByb21pc2UiLCJhbGwiLCJnZXRFeGlzdGluZ0lkIiwibmV3U2NoZWR1bGUiLCJUeXBlcyIsIk9iamVjdElkIiwiRGF0ZSIsIl9pZCIsInRvU3RyaW5nIiwiZ2V0Tm9uRXhpc3RpbmdJZCIsInJlbW92ZSIsInNjaGVkdWxlc0luRGIiLCJwbGFjZXMiLCJOb3RlIiwiZmluZCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLFFBQVEsR0FBR0MsT0FBTyxDQUFDLHdCQUFELENBQXhCOztBQUNBLE1BQU1DLFlBQVksR0FBR0QsT0FBTyxDQUFDLDJCQUFELENBQTVCOztBQUNBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLFVBQUQsQ0FBeEI7O0FBR0EsTUFBTUcsZ0JBQWdCLEdBQUcsTUFBT0MsRUFBUCxJQUFjO0FBQ25DLFFBQU1DLFNBQVMsR0FBRSxNQUFNSixZQUFZLENBQUNHLEVBQUQsQ0FBbkM7QUFDQSxRQUFNRSxlQUFlLEdBQUdELFNBQVMsQ0FDNUJFLEdBRG1CLENBQ2ZDLFFBQVEsSUFBSSxJQUFJVCxRQUFKLENBQWFTLFFBQWIsQ0FERyxDQUF4QjtBQUVBLFFBQU1DLFlBQVksR0FBR0gsZUFBZSxDQUFDQyxHQUFoQixDQUFvQkMsUUFBUSxJQUFJQSxRQUFRLENBQUNFLElBQVQsRUFBaEMsQ0FBckI7QUFDQSxRQUFNQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUgsWUFBWixDQUFOO0FBQ0gsQ0FORDs7QUFRQSxNQUFNSSxhQUFhLEdBQUcsWUFBWTtBQUM5QixRQUFNQyxXQUFXLEdBQUc7QUFDaEIsWUFBUVosUUFBUSxDQUFDYSxLQUFULENBQWVDLFFBQWYsRUFEUTtBQUVoQixhQUFTZCxRQUFRLENBQUNhLEtBQVQsQ0FBZUMsUUFBZixFQUZPO0FBR2hCLFlBQVFDLElBQUksRUFISTtBQUloQix3QkFBb0I7QUFKSixHQUFwQjtBQU9BLFFBQU1ULFFBQVEsR0FBRyxJQUFJVCxRQUFKLENBQWFlLFdBQWIsQ0FBakI7QUFDQSxRQUFNTixRQUFRLENBQUNFLElBQVQsRUFBTjtBQUVBLFNBQU9GLFFBQVEsQ0FBQ1UsR0FBVCxDQUFhQyxRQUFiLEVBQVA7QUFDSCxDQVpEOztBQWNBLE1BQU1DLGdCQUFnQixHQUFHLFlBQVk7QUFDakMsUUFBTU4sV0FBVyxHQUFHO0FBQ2hCLFlBQVFaLFFBQVEsQ0FBQ2EsS0FBVCxDQUFlQyxRQUFmLEVBRFE7QUFFaEIsYUFBU2QsUUFBUSxDQUFDYSxLQUFULENBQWVDLFFBQWYsRUFGTztBQUdoQixZQUFRQyxJQUFJLEVBSEk7QUFJaEIsd0JBQW9CO0FBSkosR0FBcEI7QUFPQSxRQUFNVCxRQUFRLEdBQUcsSUFBSVQsUUFBSixDQUFhZSxXQUFiLENBQWpCO0FBQ0EsUUFBTU4sUUFBUSxDQUFDRSxJQUFULEVBQU47QUFDQSxRQUFNRixRQUFRLENBQUNhLE1BQVQsRUFBTjtBQUVBLFNBQU9iLFFBQVEsQ0FBQ1UsR0FBVCxDQUFhQyxRQUFiLEVBQVA7QUFDSCxDQWJEOztBQWVBLE1BQU1HLGFBQWEsR0FBRyxZQUFZO0FBQzlCLFFBQU1DLE1BQU0sR0FBRyxNQUFNQyxJQUFJLENBQUNDLElBQUwsQ0FBVSxFQUFWLENBQXJCO0FBQ0EsU0FBT0YsTUFBUDtBQUNILENBSEQ7O0FBS0FHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNaeEIsRUFBQUEsZ0JBRFk7QUFDTVUsRUFBQUEsYUFETjtBQUNxQk8sRUFBQUEsZ0JBRHJCO0FBQ3NDRSxFQUFBQTtBQUR0QyxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVkdWxlID0gcmVxdWlyZSgnLi4vLi4vbW9kZWxzL3NjaGVkdWxlcycpO1xyXG5jb25zdCBtb2NrU2NoZWR1bGUgPSByZXF1aXJlKCcuLi9tb2NrRGF0YS9zY2hlZHVsZS5kYXRhJyk7XHJcbmNvbnN0IG1vbmdvb3NlID0gcmVxdWlyZSgnbW9uZ29vc2UnKTtcclxuXHJcblxyXG5jb25zdCBhZGRTY2hlZHVsZXNUb0RiID0gYXN5bmMgKGlkKSA9PiB7XHJcbiAgICBjb25zdCBzY2hlZHVsZXM9IGF3YWl0IG1vY2tTY2hlZHVsZShpZCk7XHJcbiAgICBjb25zdCBzY2hlZHVsZU9iamVjdHMgPSBzY2hlZHVsZXNcclxuICAgICAgICAubWFwKHNjaGVkdWxlID0+IG5ldyBTY2hlZHVsZShzY2hlZHVsZSkpO1xyXG4gICAgY29uc3QgcHJvbWlzZUFycmF5ID0gc2NoZWR1bGVPYmplY3RzLm1hcChzY2hlZHVsZSA9PiBzY2hlZHVsZS5zYXZlKCkpO1xyXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZUFycmF5KTtcclxufVxyXG5cclxuY29uc3QgZ2V0RXhpc3RpbmdJZCA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1NjaGVkdWxlID0ge1xyXG4gICAgICAgIFwidXNlclwiOiBtb25nb29zZS5UeXBlcy5PYmplY3RJZCgpLFxyXG4gICAgICAgIFwicGxhY2VcIjogbW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQoKSxcclxuICAgICAgICBcImRhdGVcIjogRGF0ZSgpLFxyXG4gICAgICAgIFwidHJhdmVsbGluZ01ldGhvZFwiOiAnQ2FyJ1xyXG4gICAgXHJcbiAgICB9O1xyXG4gICAgY29uc3Qgc2NoZWR1bGUgPSBuZXcgU2NoZWR1bGUobmV3U2NoZWR1bGUpO1xyXG4gICAgYXdhaXQgc2NoZWR1bGUuc2F2ZSgpO1xyXG5cclxuICAgIHJldHVybiBzY2hlZHVsZS5faWQudG9TdHJpbmcoKTtcclxufVxyXG5cclxuY29uc3QgZ2V0Tm9uRXhpc3RpbmdJZCA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IG5ld1NjaGVkdWxlID0ge1xyXG4gICAgICAgIFwidXNlclwiOiBtb25nb29zZS5UeXBlcy5PYmplY3RJZCgpLFxyXG4gICAgICAgIFwicGxhY2VcIjogbW9uZ29vc2UuVHlwZXMuT2JqZWN0SWQoKSxcclxuICAgICAgICBcImRhdGVcIjogRGF0ZSgpLFxyXG4gICAgICAgIFwidHJhdmVsbGluZ01ldGhvZFwiOiAnQ2FyJ1xyXG4gICAgXHJcbiAgICB9O1xyXG4gICAgY29uc3Qgc2NoZWR1bGUgPSBuZXcgU2NoZWR1bGUobmV3U2NoZWR1bGUpO1xyXG4gICAgYXdhaXQgc2NoZWR1bGUuc2F2ZSgpO1xyXG4gICAgYXdhaXQgc2NoZWR1bGUucmVtb3ZlKCk7XHJcblxyXG4gICAgcmV0dXJuIHNjaGVkdWxlLl9pZC50b1N0cmluZygpO1xyXG59XHJcblxyXG5jb25zdCBzY2hlZHVsZXNJbkRiID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgY29uc3QgcGxhY2VzID0gYXdhaXQgTm90ZS5maW5kKHt9KTtcclxuICAgIHJldHVybiBwbGFjZXM7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG4gICAgIGFkZFNjaGVkdWxlc1RvRGIsIGdldEV4aXN0aW5nSWQsIGdldE5vbkV4aXN0aW5nSWQsc2NoZWR1bGVzSW5EYlxyXG59Il19\",\"originalCode\":\"const Schedule = require('../../models/schedules');\\r\\nconst mockSchedule = require('../mockData/schedule.data');\\r\\nconst mongoose = require('mongoose');\\r\\n\\r\\n\\r\\nconst addSchedulesToDb = async (id) => {\\r\\n const schedules= await mockSchedule(id);\\r\\n const scheduleObjects = schedules\\r\\n .map(schedule => new Schedule(schedule));\\r\\n const promiseArray = scheduleObjects.map(schedule => schedule.save());\\r\\n await Promise.all(promiseArray);\\r\\n}\\r\\n\\r\\nconst getExistingId = async () => {\\r\\n const newSchedule = {\\r\\n \\\"user\\\": mongoose.Types.ObjectId(),\\r\\n \\\"place\\\": mongoose.Types.ObjectId(),\\r\\n \\\"date\\\": Date(),\\r\\n \\\"travellingMethod\\\": 'Car'\\r\\n \\r\\n };\\r\\n const schedule = new Schedule(newSchedule);\\r\\n await schedule.save();\\r\\n\\r\\n return schedule._id.toString();\\r\\n}\\r\\n\\r\\nconst getNonExistingId = async () => {\\r\\n const newSchedule = {\\r\\n \\\"user\\\": mongoose.Types.ObjectId(),\\r\\n \\\"place\\\": mongoose.Types.ObjectId(),\\r\\n \\\"date\\\": Date(),\\r\\n \\\"travellingMethod\\\": 'Car'\\r\\n \\r\\n };\\r\\n const schedule = new Schedule(newSchedule);\\r\\n await schedule.save();\\r\\n await schedule.remove();\\r\\n\\r\\n return schedule._id.toString();\\r\\n}\\r\\n\\r\\nconst schedulesInDb = async () => {\\r\\n const places = await Note.find({});\\r\\n return places;\\r\\n}\\r\\n\\r\\nmodule.exports = {\\r\\n addSchedulesToDb, getExistingId, getNonExistingId,schedulesInDb\\r\\n}\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/fd/schedule_helper_fdff53486ff035193f245be6b39c41e9.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"4327\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\schedule_helper.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":5724,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":5721,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"addSchedulesToDb\",\"ranges\":[{\"startOffset\":266,\"endOffset\":510,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":364,\"endOffset\":398,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"\",\"ranges\":[{\"startOffset\":444,\"endOffset\":471,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getExistingId\",\"ranges\":[{\"startOffset\":535,\"endOffset\":813,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"getNonExistingId\",\"ranges\":[{\"startOffset\":841,\"endOffset\":1146,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"schedulesInDb\",\"ranges\":[{\"startOffset\":1171,\"endOffset\":1241,\"count\":0}],\"isBlockCoverage\":false}]}},{\"codeTransformResult\":{\"code\":\"const mongoose = require('mongoose');\\n\\nconst {\\n getExistingId\\n} = require('../helpers/user_helper');\\n\\nconst schedule = async (id = null) => {\\n return [{\\n \\\"user\\\": mongoose.Types.ObjectId(id),\\n \\\"place\\\": mongoose.Types.ObjectId(),\\n \\\"date\\\": new Date(),\\n \\\"travellingMethod\\\": 'Bus'\\n }];\\n};\\n\\nmodule.exports = schedule;\\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjaGVkdWxlLmRhdGEuanMiXSwibmFtZXMiOlsibW9uZ29vc2UiLCJyZXF1aXJlIiwiZ2V0RXhpc3RpbmdJZCIsInNjaGVkdWxlIiwiaWQiLCJUeXBlcyIsIk9iamVjdElkIiwiRGF0ZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBeEI7O0FBQ0EsTUFBTTtBQUFDQyxFQUFBQTtBQUFELElBQWtCRCxPQUFPLENBQUMsd0JBQUQsQ0FBL0I7O0FBRUEsTUFBTUUsUUFBUSxHQUFHLE9BQU1DLEVBQUUsR0FBRyxJQUFYLEtBQWtCO0FBQy9CLFNBQU8sQ0FBQztBQUNKLFlBQVFKLFFBQVEsQ0FBQ0ssS0FBVCxDQUFlQyxRQUFmLENBQXdCRixFQUF4QixDQURKO0FBRUosYUFBU0osUUFBUSxDQUFDSyxLQUFULENBQWVDLFFBQWYsRUFGTDtBQUdKLFlBQVEsSUFBSUMsSUFBSixFQUhKO0FBSUosd0JBQW9CO0FBSmhCLEdBQUQsQ0FBUDtBQU9ILENBUkQ7O0FBV0FDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQk4sUUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb29zZSA9IHJlcXVpcmUoJ21vbmdvb3NlJyk7XHJcbmNvbnN0IHtnZXRFeGlzdGluZ0lkfSA9IHJlcXVpcmUoJy4uL2hlbHBlcnMvdXNlcl9oZWxwZXInKTtcclxuXHJcbmNvbnN0IHNjaGVkdWxlID0gYXN5bmMoaWQgPSBudWxsKT0+e1xyXG4gICAgcmV0dXJuIFt7XHJcbiAgICAgICAgXCJ1c2VyXCI6IG1vbmdvb3NlLlR5cGVzLk9iamVjdElkKGlkKSxcclxuICAgICAgICBcInBsYWNlXCI6IG1vbmdvb3NlLlR5cGVzLk9iamVjdElkKCksXHJcbiAgICAgICAgXCJkYXRlXCI6IG5ldyBEYXRlKCksXHJcbiAgICAgICAgXCJ0cmF2ZWxsaW5nTWV0aG9kXCI6ICdCdXMnXHJcbiAgICBcclxuICAgIH1dO1xyXG59XHJcblxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBzY2hlZHVsZTsiXX0=\",\"originalCode\":\"const mongoose = require('mongoose');\\r\\nconst {getExistingId} = require('../helpers/user_helper');\\r\\n\\r\\nconst schedule = async(id = null)=>{\\r\\n return [{\\r\\n \\\"user\\\": mongoose.Types.ObjectId(id),\\r\\n \\\"place\\\": mongoose.Types.ObjectId(),\\r\\n \\\"date\\\": new Date(),\\r\\n \\\"travellingMethod\\\": 'Bus'\\r\\n \\r\\n }];\\r\\n}\\r\\n\\r\\n\\r\\nmodule.exports = schedule;\",\"sourceMapPath\":\"C:/Users/Avishka/AppData/Local/Temp/jest/jest-transform-cache-009e07d50e1a80b30cc1211360f0dbe6-d1d5bfaad8659acd06069518d3e76e6c/ac/scheduledata_ac56f896a1cf3b724acb9bae429c45f0.map\",\"wrapperLength\":89},\"result\":{\"scriptId\":\"4328\",\"url\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\mockData\\\\schedule.data.js\",\"functions\":[{\"functionName\":\"\",\"ranges\":[{\"startOffset\":0,\"endOffset\":1745,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"Object.
\",\"ranges\":[{\"startOffset\":23,\"endOffset\":1742,\"count\":1}],\"isBlockCoverage\":true},{\"functionName\":\"schedule\",\"ranges\":[{\"startOffset\":209,\"endOffset\":386,\"count\":1}],\"isBlockCoverage\":true}]}}]}],\"wasInterrupted\":false,\"coverageMap\":{\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\app.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":41}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":33}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":29}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":27}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":41}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":53}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":41}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":55}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":44}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":31}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":35}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":37}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":26}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":48}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":56}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":50}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":56}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":54}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":58}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":20}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":20}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":48}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":31}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":16}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":31}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":0}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":27}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":44}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":26}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":24}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":49}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":24}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":36}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":55}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":31}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":38}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":33}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":1}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":111}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":13}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":12}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":51}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":10}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":43}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":3}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":3}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":30}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":38}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":32}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":38}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":36}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":39}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":0}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":41}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":35}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":25}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":3}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":0}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":16}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":40}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":52}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":35}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":69}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":0}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":26}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":32}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":22}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":3}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":21}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":2,\"62\":2,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":44,\"loc\":{\"start\":{\"line\":44,\"column\":103},\"end\":{\"line\":45,\"column\":3}},\"locations\":[{\"start\":{\"line\":44,\"column\":103},\"end\":{\"line\":45,\"column\":3}}]},\"1\":{\"type\":\"branch\",\"line\":61,\"loc\":{\"start\":{\"line\":61,\"column\":8},\"end\":{\"line\":63,\"column\":3}},\"locations\":[{\"start\":{\"line\":61,\"column\":8},\"end\":{\"line\":63,\"column\":3}}]},\"2\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":8},\"end\":{\"line\":74,\"column\":3}},\"locations\":[{\"start\":{\"line\":66,\"column\":8},\"end\":{\"line\":74,\"column\":3}}]},\"3\":{\"type\":\"branch\",\"line\":69,\"loc\":{\"start\":{\"line\":69,\"column\":21},\"end\":{\"line\":69,\"column\":66}},\"locations\":[{\"start\":{\"line\":69,\"column\":21},\"end\":{\"line\":69,\"column\":66}}]},\"4\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":13},\"end\":{\"line\":72,\"column\":32}},\"locations\":[{\"start\":{\"line\":72,\"column\":13},\"end\":{\"line\":72,\"column\":32}}]}},\"b\":{\"0\":[1],\"1\":[2],\"2\":[1],\"3\":[0],\"4\":[0]},\"fnMap\":{},\"f\":{}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\dashboardController.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":50}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":40}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":48}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":0}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":50}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":9}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":67}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":89}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":96}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":105}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":64}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":70}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":92}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":27}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":44}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":60}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":59}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":52}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":11}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":77}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":93}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":102}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":111}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":105}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":29}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":58}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":18}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":45}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":41}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":57}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":61}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":51}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":41}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":41}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":43}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":61}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":57}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":67}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":75}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":68}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":13}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":11}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":19}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":18}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":5}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":3,\"16\":3,\"17\":3,\"18\":3,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":0,\"45\":0,\"46\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":5,\"loc\":{\"start\":{\"line\":5,\"column\":23},\"end\":{\"line\":47,\"column\":1}},\"locations\":[{\"start\":{\"line\":5,\"column\":23},\"end\":{\"line\":47,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":44,\"loc\":{\"start\":{\"line\":44,\"column\":6},\"end\":{\"line\":46,\"column\":5}},\"locations\":[{\"start\":{\"line\":44,\"column\":6},\"end\":{\"line\":46,\"column\":5}}]},\"2\":{\"type\":\"branch\",\"line\":15,\"loc\":{\"start\":{\"line\":15,\"column\":32},\"end\":{\"line\":19,\"column\":11}},\"locations\":[{\"start\":{\"line\":15,\"column\":32},\"end\":{\"line\":19,\"column\":11}}]}},\"b\":{\"0\":[1],\"1\":[0],\"2\":[3]},\"fnMap\":{\"0\":{\"name\":\"Object.
.exports.getDashboard\",\"decl\":{\"start\":{\"line\":5,\"column\":23},\"end\":{\"line\":47,\"column\":1}},\"loc\":{\"start\":{\"line\":5,\"column\":23},\"end\":{\"line\":47,\"column\":1}},\"line\":5}},\"f\":{\"0\":1}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\employeeController.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":45}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":40}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":85}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":3}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":36}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":3}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":85}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":3}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":45}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":18}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":18}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":19}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":37}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":3}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":45}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":40}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":25}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":30}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":33}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":62}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":62}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":30}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":25}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":33}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":62}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":78}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":11}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":1}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":51}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":40}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":32}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":50}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":72}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":8}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":29}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":47}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":92}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":5}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":39}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":38}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":30}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":33}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":62}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":62}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":30}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":25}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":33}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":62}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":78}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":11}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":1}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":47}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":56}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":20}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":33}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":38}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":36}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":30}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":25}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":5}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":9}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":51}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":48}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":26}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":30}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":17}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":22}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":54}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":34}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":38}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":25}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":45}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":74}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":101}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":23}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":17}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":15}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":21}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":65}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":29}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":58}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":59}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":5}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":1}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":0}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":48}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":45}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":25}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":33}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":62}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":27}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":30}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":35}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":1}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":0}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":42}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":54}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":34}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":48}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":0}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":85}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":3}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":51}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":3}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":85}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":0}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":52}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":45}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":29}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":33}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":62}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":60}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":30}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":35}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":1}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":0}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":55}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":20}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":33}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":38}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":36}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":30}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":25}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":5}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":56}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":22}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":21}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":29}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":33}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":62}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":60}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":30}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":25}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":57}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":33}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":62}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":63}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":11}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":1}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":0}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":49}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":54}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":25}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":33}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":62}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":27}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":30}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":25}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":58}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":33}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":62}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":63}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":11}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":1}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":0}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":56}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":62}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":50}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":1,\"31\":1,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":0,\"69\":0,\"70\":1,\"71\":1,\"72\":1,\"73\":0,\"74\":0,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":1,\"88\":1,\"89\":1,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":1,\"99\":1,\"100\":1,\"101\":1,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":1,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":1,\"120\":1,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":1,\"144\":1,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":1,\"159\":1,\"160\":1,\"161\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":20},\"end\":{\"line\":88,\"column\":1}},\"locations\":[{\"start\":{\"line\":56,\"column\":20},\"end\":{\"line\":88,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":82,\"loc\":{\"start\":{\"line\":82,\"column\":6},\"end\":{\"line\":87,\"column\":5}},\"locations\":[{\"start\":{\"line\":82,\"column\":6},\"end\":{\"line\":87,\"column\":5}}]},\"2\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":28},\"end\":{\"line\":81,\"column\":15}},\"locations\":[{\"start\":{\"line\":67,\"column\":28},\"end\":{\"line\":81,\"column\":15}}]},\"3\":{\"type\":\"branch\",\"line\":68,\"loc\":{\"start\":{\"line\":68,\"column\":25},\"end\":{\"line\":70,\"column\":17}},\"locations\":[{\"start\":{\"line\":68,\"column\":25},\"end\":{\"line\":70,\"column\":17}}]},\"4\":{\"type\":\"branch\",\"line\":72,\"loc\":{\"start\":{\"line\":72,\"column\":34},\"end\":{\"line\":79,\"column\":23}},\"locations\":[{\"start\":{\"line\":72,\"column\":34},\"end\":{\"line\":79,\"column\":23}}]},\"5\":{\"type\":\"branch\",\"line\":73,\"loc\":{\"start\":{\"line\":73,\"column\":33},\"end\":{\"line\":75,\"column\":25}},\"locations\":[{\"start\":{\"line\":73,\"column\":33},\"end\":{\"line\":75,\"column\":25}}]}},\"b\":{\"0\":[1],\"1\":[0],\"2\":[1],\"3\":[0],\"4\":[1],\"5\":[0]},\"fnMap\":{\"0\":{\"name\":\"getAllEmployees\",\"decl\":{\"start\":{\"line\":17,\"column\":24},\"end\":{\"line\":30,\"column\":1}},\"loc\":{\"start\":{\"line\":17,\"column\":24},\"end\":{\"line\":30,\"column\":1}},\"line\":17},\"1\":{\"name\":\"getAllEmployeesByName\",\"decl\":{\"start\":{\"line\":32,\"column\":30},\"end\":{\"line\":54,\"column\":1}},\"loc\":{\"start\":{\"line\":32,\"column\":30},\"end\":{\"line\":54,\"column\":1}},\"line\":32},\"2\":{\"name\":\"addEmployee\",\"decl\":{\"start\":{\"line\":56,\"column\":20},\"end\":{\"line\":88,\"column\":1}},\"loc\":{\"start\":{\"line\":56,\"column\":20},\"end\":{\"line\":88,\"column\":1}},\"line\":56},\"3\":{\"name\":\"deleteAllEmployees\",\"decl\":{\"start\":{\"line\":90,\"column\":27},\"end\":{\"line\":98,\"column\":1}},\"loc\":{\"start\":{\"line\":90,\"column\":27},\"end\":{\"line\":98,\"column\":1}},\"line\":90},\"4\":{\"name\":\"getEmployeeDetailsById\",\"decl\":{\"start\":{\"line\":111,\"column\":31},\"end\":{\"line\":119,\"column\":1}},\"loc\":{\"start\":{\"line\":111,\"column\":31},\"end\":{\"line\":119,\"column\":1}},\"line\":111},\"5\":{\"name\":\"updateEmployeeDetailsById\",\"decl\":{\"start\":{\"line\":121,\"column\":34},\"end\":{\"line\":143,\"column\":1}},\"loc\":{\"start\":{\"line\":121,\"column\":34},\"end\":{\"line\":143,\"column\":1}},\"line\":121},\"6\":{\"name\":\"deleteAEmployeeById\",\"decl\":{\"start\":{\"line\":145,\"column\":28},\"end\":{\"line\":158,\"column\":1}},\"loc\":{\"start\":{\"line\":145,\"column\":28},\"end\":{\"line\":158,\"column\":1}},\"line\":145}},\"f\":{\"0\":0,\"1\":0,\"2\":1,\"3\":0,\"4\":0,\"5\":0,\"6\":0}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\placeController.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":59}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":0}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":85}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":3}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":42}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":3}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":85}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":50}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":19}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":104}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":35}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":33}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":62}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":72}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":30}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":35}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":1}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":56}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":19}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":29}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":76}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":5}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":104}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":35}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":33}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":62}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":72}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":30}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":35}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":1}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":0}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":46}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":25}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":25}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":30}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":43}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":10}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":15}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":5}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":28}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":42}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":19}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":54}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":10}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":36}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":42}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":28}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":43}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":5}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":32}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":34}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":33}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":62}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":70}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":21}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":33}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":62}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":68}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":55}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":10}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":35}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":1}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":0}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":53}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":29}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":25}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":33}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":62}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":27}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":30}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":35}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":1}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":52}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":64}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":44}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":58}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":0}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":85}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":3}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":57}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":3}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":85}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":0}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":57}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":55}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":34}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":33}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":62}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":70}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":21}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":33}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":62}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":78}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":10}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":35}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":1}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":60}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":66}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":22}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":21}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":34}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":33}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":62}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":70}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":30}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":35}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":1}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":0}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":54}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":64}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":25}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":33}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":62}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":56}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":30}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":35}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":1}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":0}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":66}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":72}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":60}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":2,\"10\":2,\"11\":2,\"12\":2,\"13\":2,\"14\":2,\"15\":2,\"16\":2,\"17\":2,\"18\":1,\"19\":1,\"20\":3,\"21\":3,\"22\":1,\"23\":1,\"24\":3,\"25\":3,\"26\":3,\"27\":3,\"28\":3,\"29\":3,\"30\":3,\"31\":3,\"32\":1,\"33\":1,\"34\":4,\"35\":4,\"36\":4,\"37\":4,\"38\":4,\"39\":4,\"40\":4,\"41\":4,\"42\":4,\"43\":4,\"44\":4,\"45\":4,\"46\":4,\"47\":4,\"48\":4,\"49\":4,\"50\":4,\"51\":4,\"52\":4,\"53\":1,\"54\":1,\"55\":1,\"56\":4,\"57\":3,\"58\":3,\"59\":3,\"60\":3,\"61\":3,\"62\":4,\"63\":4,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1,\"87\":2,\"88\":2,\"89\":1,\"90\":1,\"91\":1,\"92\":2,\"93\":1,\"94\":1,\"95\":1,\"96\":1,\"97\":2,\"98\":2,\"99\":1,\"100\":1,\"101\":1,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":1,\"111\":1,\"112\":1,\"113\":1,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":1,\"119\":1,\"120\":1,\"121\":1,\"122\":1,\"123\":1,\"124\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":29},\"end\":{\"line\":18,\"column\":1}},\"locations\":[{\"start\":{\"line\":9,\"column\":29},\"end\":{\"line\":18,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":12,\"loc\":{\"start\":{\"line\":12,\"column\":15},\"end\":{\"line\":16,\"column\":11}},\"locations\":[{\"start\":{\"line\":12,\"column\":15},\"end\":{\"line\":16,\"column\":11}}]},\"2\":{\"type\":\"branch\",\"line\":20,\"loc\":{\"start\":{\"line\":20,\"column\":35},\"end\":{\"line\":32,\"column\":1}},\"locations\":[{\"start\":{\"line\":20,\"column\":35},\"end\":{\"line\":32,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":22,\"loc\":{\"start\":{\"line\":22,\"column\":28},\"end\":{\"line\":24,\"column\":5}},\"locations\":[{\"start\":{\"line\":22,\"column\":28},\"end\":{\"line\":24,\"column\":5}}]},\"4\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":15},\"end\":{\"line\":30,\"column\":11}},\"locations\":[{\"start\":{\"line\":26,\"column\":15},\"end\":{\"line\":30,\"column\":11}}]},\"5\":{\"type\":\"branch\",\"line\":34,\"loc\":{\"start\":{\"line\":34,\"column\":25},\"end\":{\"line\":64,\"column\":1}},\"locations\":[{\"start\":{\"line\":34,\"column\":25},\"end\":{\"line\":64,\"column\":1}}]},\"6\":{\"type\":\"branch\",\"line\":53,\"loc\":{\"start\":{\"line\":53,\"column\":15},\"end\":{\"line\":57,\"column\":11}},\"locations\":[{\"start\":{\"line\":53,\"column\":15},\"end\":{\"line\":57,\"column\":11}}]},\"7\":{\"type\":\"branch\",\"line\":57,\"loc\":{\"start\":{\"line\":57,\"column\":12},\"end\":{\"line\":62,\"column\":10}},\"locations\":[{\"start\":{\"line\":57,\"column\":12},\"end\":{\"line\":62,\"column\":10}}]},\"8\":{\"type\":\"branch\",\"line\":60,\"loc\":{\"start\":{\"line\":60,\"column\":24},\"end\":{\"line\":60,\"column\":55}},\"locations\":[{\"start\":{\"line\":60,\"column\":24},\"end\":{\"line\":60,\"column\":55}}]},\"9\":{\"type\":\"branch\",\"line\":60,\"loc\":{\"start\":{\"line\":60,\"column\":24},\"end\":{\"line\":60,\"column\":68}},\"locations\":[{\"start\":{\"line\":60,\"column\":24},\"end\":{\"line\":60,\"column\":68}}]},\"10\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":32},\"end\":{\"line\":74,\"column\":1}},\"locations\":[{\"start\":{\"line\":66,\"column\":32},\"end\":{\"line\":74,\"column\":1}}]},\"11\":{\"type\":\"branch\",\"line\":68,\"loc\":{\"start\":{\"line\":68,\"column\":15},\"end\":{\"line\":72,\"column\":11}},\"locations\":[{\"start\":{\"line\":68,\"column\":15},\"end\":{\"line\":72,\"column\":11}}]},\"12\":{\"type\":\"branch\",\"line\":87,\"loc\":{\"start\":{\"line\":87,\"column\":36},\"end\":{\"line\":99,\"column\":1}},\"locations\":[{\"start\":{\"line\":87,\"column\":36},\"end\":{\"line\":99,\"column\":1}}]},\"13\":{\"type\":\"branch\",\"line\":89,\"loc\":{\"start\":{\"line\":89,\"column\":15},\"end\":{\"line\":93,\"column\":11}},\"locations\":[{\"start\":{\"line\":89,\"column\":15},\"end\":{\"line\":93,\"column\":11}}]},\"14\":{\"type\":\"branch\",\"line\":93,\"loc\":{\"start\":{\"line\":93,\"column\":12},\"end\":{\"line\":97,\"column\":10}},\"locations\":[{\"start\":{\"line\":93,\"column\":12},\"end\":{\"line\":97,\"column\":10}}]},\"15\":{\"type\":\"branch\",\"line\":101,\"loc\":{\"start\":{\"line\":101,\"column\":39},\"end\":{\"line\":111,\"column\":1}},\"locations\":[{\"start\":{\"line\":101,\"column\":39},\"end\":{\"line\":111,\"column\":1}}]},\"16\":{\"type\":\"branch\",\"line\":105,\"loc\":{\"start\":{\"line\":105,\"column\":15},\"end\":{\"line\":109,\"column\":11}},\"locations\":[{\"start\":{\"line\":105,\"column\":15},\"end\":{\"line\":109,\"column\":11}}]},\"17\":{\"type\":\"branch\",\"line\":113,\"loc\":{\"start\":{\"line\":113,\"column\":33},\"end\":{\"line\":121,\"column\":1}},\"locations\":[{\"start\":{\"line\":113,\"column\":33},\"end\":{\"line\":121,\"column\":1}}]},\"18\":{\"type\":\"branch\",\"line\":115,\"loc\":{\"start\":{\"line\":115,\"column\":15},\"end\":{\"line\":119,\"column\":11}},\"locations\":[{\"start\":{\"line\":115,\"column\":15},\"end\":{\"line\":119,\"column\":11}}]}},\"b\":{\"0\":[2],\"1\":[2],\"2\":[3],\"3\":[1],\"4\":[3],\"5\":[4],\"6\":[1],\"7\":[3],\"8\":[2],\"9\":[1],\"10\":[1],\"11\":[1],\"12\":[2],\"13\":[1],\"14\":[1],\"15\":[1],\"16\":[1],\"17\":[1],\"18\":[1]},\"fnMap\":{\"0\":{\"name\":\"getAllVisitingPlaces\",\"decl\":{\"start\":{\"line\":9,\"column\":29},\"end\":{\"line\":18,\"column\":1}},\"loc\":{\"start\":{\"line\":9,\"column\":29},\"end\":{\"line\":18,\"column\":1}},\"line\":9},\"1\":{\"name\":\"getAllVisitingPlacesByName\",\"decl\":{\"start\":{\"line\":20,\"column\":35},\"end\":{\"line\":32,\"column\":1}},\"loc\":{\"start\":{\"line\":20,\"column\":35},\"end\":{\"line\":32,\"column\":1}},\"line\":20},\"2\":{\"name\":\"addVisitingPlace\",\"decl\":{\"start\":{\"line\":34,\"column\":25},\"end\":{\"line\":64,\"column\":1}},\"loc\":{\"start\":{\"line\":34,\"column\":25},\"end\":{\"line\":64,\"column\":1}},\"line\":34},\"3\":{\"name\":\"VisitingPlaces.create.then.res.statusCode\",\"decl\":{\"start\":{\"line\":53,\"column\":15},\"end\":{\"line\":57,\"column\":11}},\"loc\":{\"start\":{\"line\":53,\"column\":15},\"end\":{\"line\":57,\"column\":11}},\"line\":53},\"4\":{\"name\":\"deleteAllVisitingPlaces\",\"decl\":{\"start\":{\"line\":66,\"column\":32},\"end\":{\"line\":74,\"column\":1}},\"loc\":{\"start\":{\"line\":66,\"column\":32},\"end\":{\"line\":74,\"column\":1}},\"line\":66},\"5\":{\"name\":\"getVisitingPlaceDetailsById\",\"decl\":{\"start\":{\"line\":87,\"column\":36},\"end\":{\"line\":99,\"column\":1}},\"loc\":{\"start\":{\"line\":87,\"column\":36},\"end\":{\"line\":99,\"column\":1}},\"line\":87},\"6\":{\"name\":\"VisitingPlaces.findById.then.res.statusCode\",\"decl\":{\"start\":{\"line\":89,\"column\":15},\"end\":{\"line\":93,\"column\":11}},\"loc\":{\"start\":{\"line\":89,\"column\":15},\"end\":{\"line\":93,\"column\":11}},\"line\":89},\"7\":{\"name\":\"updateVisitingPlaceDetailsById\",\"decl\":{\"start\":{\"line\":101,\"column\":39},\"end\":{\"line\":111,\"column\":1}},\"loc\":{\"start\":{\"line\":101,\"column\":39},\"end\":{\"line\":111,\"column\":1}},\"line\":101},\"8\":{\"name\":\"deleteAVisitingPlaceById\",\"decl\":{\"start\":{\"line\":113,\"column\":33},\"end\":{\"line\":121,\"column\":1}},\"loc\":{\"start\":{\"line\":113,\"column\":33},\"end\":{\"line\":121,\"column\":1}},\"line\":113}},\"f\":{\"0\":2,\"1\":3,\"2\":4,\"3\":1,\"4\":1,\"5\":2,\"6\":1,\"7\":1,\"8\":1}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\scheduleController.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":49}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":0}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":85}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":3}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":36}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":3}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":85}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":45}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":64}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":30}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":33}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":62}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":61}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":30}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":25}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":33}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":62}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":72}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":11}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":1}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":53}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":54}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":43}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":30}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":33}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":62}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":61}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":22}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":33}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":62}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":37}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":55}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":10}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":25}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":33}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":62}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":72}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":11}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":1}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":41}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":20}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":28}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":30}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":28}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":21}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":51}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":5}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":30}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":29}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":33}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":62}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":59}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":21}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":33}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":62}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":37}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":55}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":10}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":25}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":33}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":62}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":78}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":11}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":1}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":48}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":24}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":25}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":33}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":62}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":27}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":30}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":35}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":1}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":0}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":42}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":34}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":48}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":58}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":0}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":85}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":3}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":51}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":3}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":85}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":0}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":52}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":45}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":29}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":33}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":62}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":59}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":22}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":33}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":62}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":78}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":10}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":35}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":1}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":0}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":48}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":56}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":22}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":21}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":29}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":33}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":62}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":59}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":30}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":25}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":33}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":62}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":67}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":11}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":1}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":0}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":48}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":54}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":25}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":33}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":62}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":55}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":30}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":25}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":33}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":62}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":67}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":11}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":1}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":0}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":56}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":48}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":48}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":0}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":85}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":3}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":55}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":3}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":85}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":0}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":59}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":48}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":32}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":36}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":65}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":34}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":33}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":38}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":4}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":0}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":55}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":59}},\"155\":{\"start\":{\"line\":156,\"column\":0},\"end\":{\"line\":156,\"column\":25}},\"156\":{\"start\":{\"line\":157,\"column\":0},\"end\":{\"line\":157,\"column\":24}},\"157\":{\"start\":{\"line\":158,\"column\":0},\"end\":{\"line\":158,\"column\":32}},\"158\":{\"start\":{\"line\":159,\"column\":0},\"end\":{\"line\":159,\"column\":36}},\"159\":{\"start\":{\"line\":160,\"column\":0},\"end\":{\"line\":160,\"column\":65}},\"160\":{\"start\":{\"line\":161,\"column\":0},\"end\":{\"line\":161,\"column\":34}},\"161\":{\"start\":{\"line\":162,\"column\":0},\"end\":{\"line\":162,\"column\":33}},\"162\":{\"start\":{\"line\":163,\"column\":0},\"end\":{\"line\":163,\"column\":38}},\"163\":{\"start\":{\"line\":164,\"column\":0},\"end\":{\"line\":164,\"column\":4}},\"164\":{\"start\":{\"line\":165,\"column\":0},\"end\":{\"line\":165,\"column\":0}},\"165\":{\"start\":{\"line\":166,\"column\":0},\"end\":{\"line\":166,\"column\":55}},\"166\":{\"start\":{\"line\":167,\"column\":0},\"end\":{\"line\":167,\"column\":57}},\"167\":{\"start\":{\"line\":168,\"column\":0},\"end\":{\"line\":168,\"column\":28}},\"168\":{\"start\":{\"line\":169,\"column\":0},\"end\":{\"line\":169,\"column\":36}},\"169\":{\"start\":{\"line\":170,\"column\":0},\"end\":{\"line\":170,\"column\":65}},\"170\":{\"start\":{\"line\":171,\"column\":0},\"end\":{\"line\":171,\"column\":30}},\"171\":{\"start\":{\"line\":172,\"column\":0},\"end\":{\"line\":172,\"column\":33}},\"172\":{\"start\":{\"line\":173,\"column\":0},\"end\":{\"line\":173,\"column\":38}},\"173\":{\"start\":{\"line\":174,\"column\":0},\"end\":{\"line\":174,\"column\":4}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":2,\"10\":2,\"11\":2,\"12\":2,\"13\":2,\"14\":2,\"15\":2,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":2,\"21\":1,\"22\":1,\"23\":2,\"24\":2,\"25\":2,\"26\":1,\"27\":1,\"28\":1,\"29\":2,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":2,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":2,\"41\":1,\"42\":1,\"43\":2,\"44\":2,\"45\":2,\"46\":2,\"47\":2,\"48\":2,\"49\":2,\"50\":2,\"51\":2,\"52\":1,\"53\":1,\"54\":1,\"55\":2,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":2,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":2,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1,\"87\":1,\"88\":1,\"89\":1,\"90\":2,\"91\":2,\"92\":1,\"93\":1,\"94\":1,\"95\":2,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":2,\"101\":2,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":1,\"111\":1,\"112\":1,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":1,\"118\":1,\"119\":1,\"120\":1,\"121\":1,\"122\":1,\"123\":1,\"124\":1,\"125\":1,\"126\":1,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":1,\"132\":1,\"133\":1,\"134\":1,\"135\":1,\"136\":1,\"137\":1,\"138\":1,\"139\":1,\"140\":1,\"141\":1,\"142\":1,\"143\":1,\"144\":1,\"145\":1,\"146\":1,\"147\":1,\"148\":1,\"149\":1,\"150\":1,\"151\":1,\"152\":1,\"153\":1,\"154\":1,\"155\":1,\"156\":1,\"157\":1,\"158\":1,\"159\":1,\"160\":1,\"161\":1,\"162\":1,\"163\":1,\"164\":1,\"165\":1,\"166\":1,\"167\":1,\"168\":1,\"169\":1,\"170\":1,\"171\":1,\"172\":1,\"173\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":24},\"end\":{\"line\":21,\"column\":1}},\"locations\":[{\"start\":{\"line\":9,\"column\":24},\"end\":{\"line\":21,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":11,\"loc\":{\"start\":{\"line\":11,\"column\":15},\"end\":{\"line\":15,\"column\":11}},\"locations\":[{\"start\":{\"line\":11,\"column\":15},\"end\":{\"line\":15,\"column\":11}}]},\"2\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":32},\"end\":{\"line\":41,\"column\":1}},\"locations\":[{\"start\":{\"line\":23,\"column\":32},\"end\":{\"line\":41,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":15},\"end\":{\"line\":30,\"column\":11}},\"locations\":[{\"start\":{\"line\":26,\"column\":15},\"end\":{\"line\":30,\"column\":11}}]},\"4\":{\"type\":\"branch\",\"line\":30,\"loc\":{\"start\":{\"line\":30,\"column\":12},\"end\":{\"line\":35,\"column\":10}},\"locations\":[{\"start\":{\"line\":30,\"column\":12},\"end\":{\"line\":35,\"column\":10}}]},\"5\":{\"type\":\"branch\",\"line\":43,\"loc\":{\"start\":{\"line\":43,\"column\":20},\"end\":{\"line\":67,\"column\":1}},\"locations\":[{\"start\":{\"line\":43,\"column\":20},\"end\":{\"line\":67,\"column\":1}}]},\"6\":{\"type\":\"branch\",\"line\":52,\"loc\":{\"start\":{\"line\":52,\"column\":15},\"end\":{\"line\":56,\"column\":11}},\"locations\":[{\"start\":{\"line\":52,\"column\":15},\"end\":{\"line\":56,\"column\":11}}]},\"7\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":12},\"end\":{\"line\":61,\"column\":10}},\"locations\":[{\"start\":{\"line\":56,\"column\":12},\"end\":{\"line\":61,\"column\":10}}]},\"8\":{\"type\":\"branch\",\"line\":69,\"loc\":{\"start\":{\"line\":69,\"column\":27},\"end\":{\"line\":77,\"column\":1}},\"locations\":[{\"start\":{\"line\":69,\"column\":27},\"end\":{\"line\":77,\"column\":1}}]},\"9\":{\"type\":\"branch\",\"line\":71,\"loc\":{\"start\":{\"line\":71,\"column\":15},\"end\":{\"line\":75,\"column\":11}},\"locations\":[{\"start\":{\"line\":71,\"column\":15},\"end\":{\"line\":75,\"column\":11}}]},\"10\":{\"type\":\"branch\",\"line\":90,\"loc\":{\"start\":{\"line\":90,\"column\":31},\"end\":{\"line\":102,\"column\":1}},\"locations\":[{\"start\":{\"line\":90,\"column\":31},\"end\":{\"line\":102,\"column\":1}}]},\"11\":{\"type\":\"branch\",\"line\":92,\"loc\":{\"start\":{\"line\":92,\"column\":15},\"end\":{\"line\":96,\"column\":12}},\"locations\":[{\"start\":{\"line\":92,\"column\":15},\"end\":{\"line\":96,\"column\":12}}]},\"12\":{\"type\":\"branch\",\"line\":96,\"loc\":{\"start\":{\"line\":96,\"column\":13},\"end\":{\"line\":100,\"column\":10}},\"locations\":[{\"start\":{\"line\":96,\"column\":13},\"end\":{\"line\":100,\"column\":10}}]},\"13\":{\"type\":\"branch\",\"line\":104,\"loc\":{\"start\":{\"line\":104,\"column\":27},\"end\":{\"line\":118,\"column\":1}},\"locations\":[{\"start\":{\"line\":104,\"column\":27},\"end\":{\"line\":118,\"column\":1}}]},\"14\":{\"type\":\"branch\",\"line\":108,\"loc\":{\"start\":{\"line\":108,\"column\":15},\"end\":{\"line\":112,\"column\":11}},\"locations\":[{\"start\":{\"line\":108,\"column\":15},\"end\":{\"line\":112,\"column\":11}}]},\"15\":{\"type\":\"branch\",\"line\":120,\"loc\":{\"start\":{\"line\":120,\"column\":27},\"end\":{\"line\":132,\"column\":1}},\"locations\":[{\"start\":{\"line\":120,\"column\":27},\"end\":{\"line\":132,\"column\":1}}]},\"16\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":15},\"end\":{\"line\":126,\"column\":11}},\"locations\":[{\"start\":{\"line\":122,\"column\":15},\"end\":{\"line\":126,\"column\":11}}]}},\"b\":{\"0\":[2],\"1\":[2],\"2\":[2],\"3\":[1],\"4\":[1],\"5\":[2],\"6\":[1],\"7\":[1],\"8\":[1],\"9\":[1],\"10\":[2],\"11\":[1],\"12\":[1],\"13\":[1],\"14\":[1],\"15\":[1],\"16\":[1]},\"fnMap\":{\"0\":{\"name\":\"getAllSchedules\",\"decl\":{\"start\":{\"line\":9,\"column\":24},\"end\":{\"line\":21,\"column\":1}},\"loc\":{\"start\":{\"line\":9,\"column\":24},\"end\":{\"line\":21,\"column\":1}},\"line\":9},\"1\":{\"name\":\"getAllSchedulesForAUser\",\"decl\":{\"start\":{\"line\":23,\"column\":32},\"end\":{\"line\":41,\"column\":1}},\"loc\":{\"start\":{\"line\":23,\"column\":32},\"end\":{\"line\":41,\"column\":1}},\"line\":23},\"2\":{\"name\":\"Schedules.find.populate.then.res.statusCode\",\"decl\":{\"start\":{\"line\":26,\"column\":15},\"end\":{\"line\":30,\"column\":11}},\"loc\":{\"start\":{\"line\":26,\"column\":15},\"end\":{\"line\":30,\"column\":11}},\"line\":26},\"3\":{\"name\":\"addSchedule\",\"decl\":{\"start\":{\"line\":43,\"column\":20},\"end\":{\"line\":67,\"column\":1}},\"loc\":{\"start\":{\"line\":43,\"column\":20},\"end\":{\"line\":67,\"column\":1}},\"line\":43},\"4\":{\"name\":\"Schedules.create.then.res.statusCode\",\"decl\":{\"start\":{\"line\":52,\"column\":15},\"end\":{\"line\":56,\"column\":11}},\"loc\":{\"start\":{\"line\":52,\"column\":15},\"end\":{\"line\":56,\"column\":11}},\"line\":52},\"5\":{\"name\":\"deleteAllSchedules\",\"decl\":{\"start\":{\"line\":69,\"column\":27},\"end\":{\"line\":77,\"column\":1}},\"loc\":{\"start\":{\"line\":69,\"column\":27},\"end\":{\"line\":77,\"column\":1}},\"line\":69},\"6\":{\"name\":\"getScheduleDetailsById\",\"decl\":{\"start\":{\"line\":90,\"column\":31},\"end\":{\"line\":102,\"column\":1}},\"loc\":{\"start\":{\"line\":90,\"column\":31},\"end\":{\"line\":102,\"column\":1}},\"line\":90},\"7\":{\"name\":\"Schedules.findById.then.res.statusCode\",\"decl\":{\"start\":{\"line\":92,\"column\":15},\"end\":{\"line\":96,\"column\":12}},\"loc\":{\"start\":{\"line\":92,\"column\":15},\"end\":{\"line\":96,\"column\":12}},\"line\":92},\"8\":{\"name\":\"updateScheduleById\",\"decl\":{\"start\":{\"line\":104,\"column\":27},\"end\":{\"line\":118,\"column\":1}},\"loc\":{\"start\":{\"line\":104,\"column\":27},\"end\":{\"line\":118,\"column\":1}},\"line\":104},\"9\":{\"name\":\"deleteScheduleById\",\"decl\":{\"start\":{\"line\":120,\"column\":27},\"end\":{\"line\":132,\"column\":1}},\"loc\":{\"start\":{\"line\":120,\"column\":27},\"end\":{\"line\":132,\"column\":1}},\"line\":120}},\"f\":{\"0\":2,\"1\":2,\"2\":1,\"3\":2,\"4\":1,\"5\":1,\"6\":2,\"7\":1,\"8\":1,\"9\":1}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\touristController.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":44}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":40}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":85}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":3}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":35}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":3}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":85}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":44}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":35}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":72}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":24}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":29}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":33}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":62}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":60}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":30}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":25}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":33}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":62}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":78}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":11}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":1}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":50}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":35}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":29}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":47}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":64}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":5}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":39}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":37}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":29}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":33}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":62}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":60}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":30}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":25}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":33}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":62}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":78}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":11}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":1}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":46}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":56}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":19}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":33}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":38}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":36}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":30}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":32}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":20}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":5}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":9}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":48}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":47}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":26}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":41}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":70}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":71}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":17}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":22}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":52}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":34}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":49}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":78}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":99}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":25}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":45}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":74}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":100}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":23}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":17}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":15}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":21}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":67}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":29}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":58}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":59}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":5}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":1}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":0}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":47}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":39}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":25}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":33}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":62}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":56}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":30}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":35}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":1}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":0}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":40}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":52}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":32}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":46}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":0}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":85}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":3}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":50}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":3}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":85}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":0}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":51}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":41}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":32}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":28}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":33}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":62}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":58}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":21}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":33}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":62}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":90}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":10}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":36}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":1}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":0}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":54}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":4}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":54}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":22}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":21}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":28}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":33}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":62}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":58}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":22}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":33}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":62}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":90}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":10}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":35}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":1}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":0}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":48}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":52}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":25}},\"141\":{\"start\":{\"line\":142,\"column\":0},\"end\":{\"line\":142,\"column\":33}},\"142\":{\"start\":{\"line\":143,\"column\":0},\"end\":{\"line\":143,\"column\":62}},\"143\":{\"start\":{\"line\":144,\"column\":0},\"end\":{\"line\":144,\"column\":56}},\"144\":{\"start\":{\"line\":145,\"column\":0},\"end\":{\"line\":145,\"column\":30}},\"145\":{\"start\":{\"line\":146,\"column\":0},\"end\":{\"line\":146,\"column\":25}},\"146\":{\"start\":{\"line\":147,\"column\":0},\"end\":{\"line\":147,\"column\":33}},\"147\":{\"start\":{\"line\":148,\"column\":0},\"end\":{\"line\":148,\"column\":62}},\"148\":{\"start\":{\"line\":149,\"column\":0},\"end\":{\"line\":149,\"column\":79}},\"149\":{\"start\":{\"line\":150,\"column\":0},\"end\":{\"line\":150,\"column\":11}},\"150\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":151,\"column\":1}},\"151\":{\"start\":{\"line\":152,\"column\":0},\"end\":{\"line\":152,\"column\":0}},\"152\":{\"start\":{\"line\":153,\"column\":0},\"end\":{\"line\":153,\"column\":54}},\"153\":{\"start\":{\"line\":154,\"column\":0},\"end\":{\"line\":154,\"column\":60}},\"154\":{\"start\":{\"line\":155,\"column\":0},\"end\":{\"line\":155,\"column\":48}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":2,\"11\":2,\"12\":2,\"13\":2,\"14\":2,\"15\":2,\"16\":2,\"17\":2,\"18\":2,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":2,\"24\":1,\"25\":1,\"26\":3,\"27\":3,\"28\":1,\"29\":1,\"30\":1,\"31\":3,\"32\":3,\"33\":3,\"34\":3,\"35\":3,\"36\":3,\"37\":3,\"38\":3,\"39\":3,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":3,\"45\":1,\"46\":1,\"47\":5,\"48\":5,\"49\":5,\"50\":5,\"51\":5,\"52\":5,\"53\":5,\"54\":5,\"55\":5,\"56\":5,\"57\":5,\"58\":5,\"59\":5,\"60\":3,\"61\":3,\"62\":3,\"63\":3,\"64\":2,\"65\":2,\"66\":2,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":2,\"72\":2,\"73\":2,\"74\":2,\"75\":2,\"76\":5,\"77\":5,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":5,\"84\":1,\"85\":1,\"86\":1,\"87\":1,\"88\":1,\"89\":1,\"90\":1,\"91\":1,\"92\":1,\"93\":1,\"94\":1,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":1,\"101\":1,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":1,\"107\":2,\"108\":2,\"109\":2,\"110\":1,\"111\":1,\"112\":1,\"113\":2,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":2,\"119\":2,\"120\":1,\"121\":1,\"122\":1,\"123\":1,\"124\":1,\"125\":1,\"126\":1,\"127\":1,\"128\":1,\"129\":1,\"130\":1,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":1,\"136\":1,\"137\":1,\"138\":1,\"139\":1,\"140\":1,\"141\":1,\"142\":1,\"143\":1,\"144\":1,\"145\":1,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":1,\"151\":1,\"152\":1,\"153\":1,\"154\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":10,\"loc\":{\"start\":{\"line\":10,\"column\":23},\"end\":{\"line\":24,\"column\":1}},\"locations\":[{\"start\":{\"line\":10,\"column\":23},\"end\":{\"line\":24,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":14,\"loc\":{\"start\":{\"line\":14,\"column\":15},\"end\":{\"line\":18,\"column\":11}},\"locations\":[{\"start\":{\"line\":14,\"column\":15},\"end\":{\"line\":18,\"column\":11}}]},\"2\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":29},\"end\":{\"line\":45,\"column\":1}},\"locations\":[{\"start\":{\"line\":26,\"column\":29},\"end\":{\"line\":45,\"column\":1}}]},\"3\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":28},\"end\":{\"line\":31,\"column\":5}},\"locations\":[{\"start\":{\"line\":28,\"column\":28},\"end\":{\"line\":31,\"column\":5}}]},\"4\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":23},\"end\":{\"line\":29,\"column\":47}},\"locations\":[{\"start\":{\"line\":29,\"column\":23},\"end\":{\"line\":29,\"column\":47}}]},\"5\":{\"type\":\"branch\",\"line\":35,\"loc\":{\"start\":{\"line\":35,\"column\":15},\"end\":{\"line\":39,\"column\":11}},\"locations\":[{\"start\":{\"line\":35,\"column\":15},\"end\":{\"line\":39,\"column\":11}}]},\"6\":{\"type\":\"branch\",\"line\":47,\"loc\":{\"start\":{\"line\":47,\"column\":19},\"end\":{\"line\":84,\"column\":1}},\"locations\":[{\"start\":{\"line\":47,\"column\":19},\"end\":{\"line\":84,\"column\":1}}]},\"7\":{\"type\":\"branch\",\"line\":78,\"loc\":{\"start\":{\"line\":78,\"column\":6},\"end\":{\"line\":83,\"column\":5}},\"locations\":[{\"start\":{\"line\":78,\"column\":6},\"end\":{\"line\":83,\"column\":5}}]},\"8\":{\"type\":\"branch\",\"line\":59,\"loc\":{\"start\":{\"line\":59,\"column\":28},\"end\":{\"line\":77,\"column\":15}},\"locations\":[{\"start\":{\"line\":59,\"column\":28},\"end\":{\"line\":77,\"column\":15}}]},\"9\":{\"type\":\"branch\",\"line\":60,\"loc\":{\"start\":{\"line\":60,\"column\":25},\"end\":{\"line\":64,\"column\":17}},\"locations\":[{\"start\":{\"line\":60,\"column\":25},\"end\":{\"line\":64,\"column\":17}}]},\"10\":{\"type\":\"branch\",\"line\":65,\"loc\":{\"start\":{\"line\":65,\"column\":-2},\"end\":{\"line\":76,\"column\":17}},\"locations\":[{\"start\":{\"line\":65,\"column\":-2},\"end\":{\"line\":76,\"column\":17}}]},\"11\":{\"type\":\"branch\",\"line\":66,\"loc\":{\"start\":{\"line\":66,\"column\":33},\"end\":{\"line\":75,\"column\":23}},\"locations\":[{\"start\":{\"line\":66,\"column\":33},\"end\":{\"line\":75,\"column\":23}}]},\"12\":{\"type\":\"branch\",\"line\":67,\"loc\":{\"start\":{\"line\":67,\"column\":33},\"end\":{\"line\":71,\"column\":25}},\"locations\":[{\"start\":{\"line\":67,\"column\":33},\"end\":{\"line\":71,\"column\":25}}]},\"13\":{\"type\":\"branch\",\"line\":86,\"loc\":{\"start\":{\"line\":86,\"column\":26},\"end\":{\"line\":94,\"column\":1}},\"locations\":[{\"start\":{\"line\":86,\"column\":26},\"end\":{\"line\":94,\"column\":1}}]},\"14\":{\"type\":\"branch\",\"line\":88,\"loc\":{\"start\":{\"line\":88,\"column\":15},\"end\":{\"line\":92,\"column\":11}},\"locations\":[{\"start\":{\"line\":88,\"column\":15},\"end\":{\"line\":92,\"column\":11}}]},\"15\":{\"type\":\"branch\",\"line\":107,\"loc\":{\"start\":{\"line\":107,\"column\":30},\"end\":{\"line\":120,\"column\":1}},\"locations\":[{\"start\":{\"line\":107,\"column\":30},\"end\":{\"line\":120,\"column\":1}}]},\"16\":{\"type\":\"branch\",\"line\":110,\"loc\":{\"start\":{\"line\":110,\"column\":15},\"end\":{\"line\":114,\"column\":11}},\"locations\":[{\"start\":{\"line\":110,\"column\":15},\"end\":{\"line\":114,\"column\":11}}]},\"17\":{\"type\":\"branch\",\"line\":114,\"loc\":{\"start\":{\"line\":114,\"column\":12},\"end\":{\"line\":118,\"column\":10}},\"locations\":[{\"start\":{\"line\":114,\"column\":12},\"end\":{\"line\":118,\"column\":10}}]},\"18\":{\"type\":\"branch\",\"line\":122,\"loc\":{\"start\":{\"line\":122,\"column\":33},\"end\":{\"line\":137,\"column\":1}},\"locations\":[{\"start\":{\"line\":122,\"column\":33},\"end\":{\"line\":137,\"column\":1}}]},\"19\":{\"type\":\"branch\",\"line\":127,\"loc\":{\"start\":{\"line\":127,\"column\":15},\"end\":{\"line\":131,\"column\":11}},\"locations\":[{\"start\":{\"line\":127,\"column\":15},\"end\":{\"line\":131,\"column\":11}}]},\"20\":{\"type\":\"branch\",\"line\":139,\"loc\":{\"start\":{\"line\":139,\"column\":27},\"end\":{\"line\":151,\"column\":1}},\"locations\":[{\"start\":{\"line\":139,\"column\":27},\"end\":{\"line\":151,\"column\":1}}]},\"21\":{\"type\":\"branch\",\"line\":141,\"loc\":{\"start\":{\"line\":141,\"column\":15},\"end\":{\"line\":145,\"column\":11}},\"locations\":[{\"start\":{\"line\":141,\"column\":15},\"end\":{\"line\":145,\"column\":11}}]}},\"b\":{\"0\":[2],\"1\":[2],\"2\":[3],\"3\":[1],\"4\":[0],\"5\":[3],\"6\":[5],\"7\":[0],\"8\":[5],\"9\":[3],\"10\":[2],\"11\":[2],\"12\":[0],\"13\":[1],\"14\":[1],\"15\":[2],\"16\":[1],\"17\":[1],\"18\":[1],\"19\":[1],\"20\":[1],\"21\":[1]},\"fnMap\":{\"0\":{\"name\":\"getAllTourists\",\"decl\":{\"start\":{\"line\":10,\"column\":23},\"end\":{\"line\":24,\"column\":1}},\"loc\":{\"start\":{\"line\":10,\"column\":23},\"end\":{\"line\":24,\"column\":1}},\"line\":10},\"1\":{\"name\":\"getAllTouristsByName\",\"decl\":{\"start\":{\"line\":26,\"column\":29},\"end\":{\"line\":45,\"column\":1}},\"loc\":{\"start\":{\"line\":26,\"column\":29},\"end\":{\"line\":45,\"column\":1}},\"line\":26},\"2\":{\"name\":\"addTourist\",\"decl\":{\"start\":{\"line\":47,\"column\":19},\"end\":{\"line\":84,\"column\":1}},\"loc\":{\"start\":{\"line\":47,\"column\":19},\"end\":{\"line\":84,\"column\":1}},\"line\":47},\"3\":{\"name\":\"deleteAllTourists\",\"decl\":{\"start\":{\"line\":86,\"column\":26},\"end\":{\"line\":94,\"column\":1}},\"loc\":{\"start\":{\"line\":86,\"column\":26},\"end\":{\"line\":94,\"column\":1}},\"line\":86},\"4\":{\"name\":\"getTouristDetailsById\",\"decl\":{\"start\":{\"line\":107,\"column\":30},\"end\":{\"line\":120,\"column\":1}},\"loc\":{\"start\":{\"line\":107,\"column\":30},\"end\":{\"line\":120,\"column\":1}},\"line\":107},\"5\":{\"name\":\"Tourists.findById.then.res.statusCode\",\"decl\":{\"start\":{\"line\":110,\"column\":15},\"end\":{\"line\":114,\"column\":11}},\"loc\":{\"start\":{\"line\":110,\"column\":15},\"end\":{\"line\":114,\"column\":11}},\"line\":110},\"6\":{\"name\":\"updateTouristDetailsById\",\"decl\":{\"start\":{\"line\":122,\"column\":33},\"end\":{\"line\":137,\"column\":1}},\"loc\":{\"start\":{\"line\":122,\"column\":33},\"end\":{\"line\":137,\"column\":1}},\"line\":122},\"7\":{\"name\":\"Tourists.findByIdAndUpdate.then.res.statusCode\",\"decl\":{\"start\":{\"line\":127,\"column\":15},\"end\":{\"line\":131,\"column\":11}},\"loc\":{\"start\":{\"line\":127,\"column\":15},\"end\":{\"line\":131,\"column\":11}},\"line\":127},\"8\":{\"name\":\"deleteATouristById\",\"decl\":{\"start\":{\"line\":139,\"column\":27},\"end\":{\"line\":151,\"column\":1}},\"loc\":{\"start\":{\"line\":139,\"column\":27},\"end\":{\"line\":151,\"column\":1}},\"line\":139}},\"f\":{\"0\":2,\"1\":3,\"2\":5,\"3\":1,\"4\":2,\"5\":1,\"6\":1,\"7\":1,\"8\":1}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\upload.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\upload.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":31}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":27}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":25}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":41}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":50}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":0}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":40}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":9}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":31}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":36}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":55}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":9}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":51}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":21}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":68}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":5}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":2}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":51}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":9}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":39}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":51}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":21}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":23}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":60}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":59}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":70}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":64}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":29}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":47}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":13}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":38}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":25}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":33}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":34}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":47}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":26}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":17}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":14}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":16}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":37}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":9}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":30}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":26}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":0}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":0}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":29}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":58}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":85}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":19}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":29}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":58}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":86}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":5}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":2}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":0}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":52}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":9}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":40}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":53}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":0}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":21}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":23}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":60}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":60}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":72}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":0}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":64}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":29}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":47}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":13}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":38}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":25}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":33}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":34}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":0}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":47}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":26}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":17}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":14}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":16}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":35}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":9}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":0}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":31}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":27}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":0}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":0}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":29}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":58}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":85}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":0}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":19}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":29}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":58}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":86}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":5}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":2}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":0}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":42}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":32}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":1,\"20\":1,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":1,\"63\":1,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":1,\"106\":1,\"107\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"uploadFile\",\"decl\":{\"start\":{\"line\":7,\"column\":19},\"end\":{\"line\":19,\"column\":2}},\"loc\":{\"start\":{\"line\":7,\"column\":19},\"end\":{\"line\":19,\"column\":2}},\"line\":7},\"1\":{\"name\":\"UploadUserImage\",\"decl\":{\"start\":{\"line\":21,\"column\":24},\"end\":{\"line\":62,\"column\":2}},\"loc\":{\"start\":{\"line\":21,\"column\":24},\"end\":{\"line\":62,\"column\":2}},\"line\":21},\"2\":{\"name\":\"uploadPlaceImage\",\"decl\":{\"start\":{\"line\":64,\"column\":25},\"end\":{\"line\":105,\"column\":2}},\"loc\":{\"start\":{\"line\":64,\"column\":25},\"end\":{\"line\":105,\"column\":2}},\"line\":64}},\"f\":{\"0\":0,\"1\":0,\"2\":0}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\controllers\\\\userController.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":33}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":30}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":39}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":35}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":57}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":41}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":17}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":33}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":38}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":36}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":30}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":21}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":5}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":36}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":43}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":22}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":37}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":66}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":83}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":13}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":18}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":39}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":56}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":38}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":54}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":42}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":41}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":70}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":84}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":19}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":13}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":11}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":1}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":35}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":57}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":0}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":20}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":33}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":62}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":83}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":29}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":9}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":34}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":86}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":33}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":62}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":84}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":11}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":23}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":1}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":45}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":31}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":58}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":28}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":70}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":37}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":37}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":66}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":82}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":15}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":16}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":33}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":62}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":78}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":9}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":23}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":29}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":58}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":79}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":7}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":1}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":0}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":30}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":22}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":30}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":38}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":5}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":10}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":54}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":25}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":5}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":1}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":0}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":34}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":22}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":24}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":42}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":1,\"77\":1,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":1,\"88\":1,\"89\":1,\"90\":1,\"91\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":20},\"end\":{\"line\":36,\"column\":1}},\"locations\":[{\"start\":{\"line\":9,\"column\":20},\"end\":{\"line\":36,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":18,\"loc\":{\"start\":{\"line\":18,\"column\":27},\"end\":{\"line\":35,\"column\":11}},\"locations\":[{\"start\":{\"line\":18,\"column\":27},\"end\":{\"line\":35,\"column\":11}}]},\"2\":{\"type\":\"branch\",\"line\":19,\"loc\":{\"start\":{\"line\":19,\"column\":21},\"end\":{\"line\":23,\"column\":13}},\"locations\":[{\"start\":{\"line\":19,\"column\":21},\"end\":{\"line\":23,\"column\":13}}]},\"3\":{\"type\":\"branch\",\"line\":29,\"loc\":{\"start\":{\"line\":29,\"column\":26},\"end\":{\"line\":33,\"column\":19}},\"locations\":[{\"start\":{\"line\":29,\"column\":26},\"end\":{\"line\":33,\"column\":19}}]},\"4\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":14},\"end\":{\"line\":54,\"column\":1}},\"locations\":[{\"start\":{\"line\":38,\"column\":14},\"end\":{\"line\":54,\"column\":1}}]},\"5\":{\"type\":\"branch\",\"line\":39,\"loc\":{\"start\":{\"line\":39,\"column\":35},\"end\":{\"line\":53,\"column\":7}},\"locations\":[{\"start\":{\"line\":39,\"column\":35},\"end\":{\"line\":53,\"column\":7}}]},\"6\":{\"type\":\"branch\",\"line\":41,\"loc\":{\"start\":{\"line\":41,\"column\":19},\"end\":{\"line\":46,\"column\":9}},\"locations\":[{\"start\":{\"line\":41,\"column\":19},\"end\":{\"line\":46,\"column\":9}}]},\"7\":{\"type\":\"branch\",\"line\":47,\"loc\":{\"start\":{\"line\":47,\"column\":25},\"end\":{\"line\":52,\"column\":11}},\"locations\":[{\"start\":{\"line\":47,\"column\":25},\"end\":{\"line\":52,\"column\":11}}]}},\"b\":{\"0\":[1],\"1\":[1],\"2\":[0],\"3\":[1],\"4\":[1],\"5\":[1],\"6\":[0],\"7\":[1]},\"fnMap\":{\"0\":{\"name\":\"signupAdmin\",\"decl\":{\"start\":{\"line\":9,\"column\":20},\"end\":{\"line\":36,\"column\":1}},\"loc\":{\"start\":{\"line\":9,\"column\":20},\"end\":{\"line\":36,\"column\":1}},\"line\":9},\"1\":{\"name\":\"login\",\"decl\":{\"start\":{\"line\":38,\"column\":14},\"end\":{\"line\":54,\"column\":1}},\"loc\":{\"start\":{\"line\":38,\"column\":14},\"end\":{\"line\":54,\"column\":1}},\"line\":38},\"2\":{\"name\":\"changePassoword\",\"decl\":{\"start\":{\"line\":56,\"column\":24},\"end\":{\"line\":76,\"column\":1}},\"loc\":{\"start\":{\"line\":56,\"column\":24},\"end\":{\"line\":76,\"column\":1}},\"line\":56},\"3\":{\"name\":\"logout\",\"decl\":{\"start\":{\"line\":78,\"column\":15},\"end\":{\"line\":87,\"column\":1}},\"loc\":{\"start\":{\"line\":78,\"column\":15},\"end\":{\"line\":87,\"column\":1}},\"line\":78}},\"f\":{\"0\":1,\"1\":1,\"2\":0,\"3\":0}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\authenticate.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":35}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":55}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":38}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":0}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":51}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":52}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":34}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":53}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":45}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":49}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":30}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":48}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":29}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":2}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":14}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":63}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":41}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":0}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":56}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":28}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":63}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":22}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":40}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":13}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":28}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":40}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":13}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":18}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":41}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":13}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":11}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":8}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":70}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":43}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":35}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":22}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":5}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":40}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":77}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":25}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":25}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":5}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":10}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":54}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":25}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":25}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":5}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":1}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":0}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":47}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":34}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":22}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":5}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":39}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":77}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":25}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":25}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":5}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":10}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":58}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":25}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":25}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":5}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":2,\"25\":2,\"26\":0,\"27\":0,\"28\":2,\"29\":2,\"30\":2,\"31\":0,\"32\":0,\"33\":0,\"34\":2,\"35\":2,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":2,\"41\":2,\"42\":2,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":2,\"54\":1,\"55\":1,\"56\":5,\"57\":5,\"58\":5,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":5},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":14,\"loc\":{\"start\":{\"line\":14,\"column\":20},\"end\":{\"line\":17,\"column\":2}},\"locations\":[{\"start\":{\"line\":14,\"column\":20},\"end\":{\"line\":17,\"column\":2}}]},\"1\":{\"type\":\"branch\",\"line\":24,\"loc\":{\"start\":{\"line\":24,\"column\":4},\"end\":{\"line\":36,\"column\":8}},\"locations\":[{\"start\":{\"line\":24,\"column\":4},\"end\":{\"line\":36,\"column\":8}}]},\"2\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":47},\"end\":{\"line\":35,\"column\":11}},\"locations\":[{\"start\":{\"line\":25,\"column\":47},\"end\":{\"line\":35,\"column\":11}}]},\"3\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":21},\"end\":{\"line\":28,\"column\":13}},\"locations\":[{\"start\":{\"line\":26,\"column\":21},\"end\":{\"line\":28,\"column\":13}}]},\"4\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":-2},\"end\":{\"line\":34,\"column\":13}},\"locations\":[{\"start\":{\"line\":32,\"column\":-2},\"end\":{\"line\":34,\"column\":13}}]},\"5\":{\"type\":\"branch\",\"line\":40,\"loc\":{\"start\":{\"line\":40,\"column\":22},\"end\":{\"line\":54,\"column\":1}},\"locations\":[{\"start\":{\"line\":40,\"column\":22},\"end\":{\"line\":54,\"column\":1}}]},\"6\":{\"type\":\"branch\",\"line\":44,\"loc\":{\"start\":{\"line\":44,\"column\":-2},\"end\":{\"line\":53,\"column\":5}},\"locations\":[{\"start\":{\"line\":44,\"column\":-2},\"end\":{\"line\":53,\"column\":5}}]},\"7\":{\"type\":\"branch\",\"line\":56,\"loc\":{\"start\":{\"line\":56,\"column\":26},\"end\":{\"line\":70,\"column\":1}},\"locations\":[{\"start\":{\"line\":56,\"column\":26},\"end\":{\"line\":70,\"column\":1}}]},\"8\":{\"type\":\"branch\",\"line\":60,\"loc\":{\"start\":{\"line\":60,\"column\":-2},\"end\":{\"line\":69,\"column\":5}},\"locations\":[{\"start\":{\"line\":60,\"column\":-2},\"end\":{\"line\":69,\"column\":5}}]}},\"b\":{\"0\":[1],\"1\":[2],\"2\":[2],\"3\":[0],\"4\":[0],\"5\":[2],\"6\":[0],\"7\":[5],\"8\":[0]},\"fnMap\":{\"0\":{\"name\":\"Object.
.exports.getToken\",\"decl\":{\"start\":{\"line\":14,\"column\":20},\"end\":{\"line\":17,\"column\":2}},\"loc\":{\"start\":{\"line\":14,\"column\":20},\"end\":{\"line\":17,\"column\":2}},\"line\":14},\"1\":{\"name\":\"Object.
.exports.verifyAdmin\",\"decl\":{\"start\":{\"line\":40,\"column\":22},\"end\":{\"line\":54,\"column\":1}},\"loc\":{\"start\":{\"line\":40,\"column\":22},\"end\":{\"line\":54,\"column\":1}},\"line\":40},\"2\":{\"name\":\"Object.
.exports.verifyModerater\",\"decl\":{\"start\":{\"line\":56,\"column\":26},\"end\":{\"line\":70,\"column\":1}},\"loc\":{\"start\":{\"line\":56,\"column\":26},\"end\":{\"line\":70,\"column\":1}},\"line\":56}},\"f\":{\"0\":1,\"1\":2,\"2\":5}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\middleware\\\\validation.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":23}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":9}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":32}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":36}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":20}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":20}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":6}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":11}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":85}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":19}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":40}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":10}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":18}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":6}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":18}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":93}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":19}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":41}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":10}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":18}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":6}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":15}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":90}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":19}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":41}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":10}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":18}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":6}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":18}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":95}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":19}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":41}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":10}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":18}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":6}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":16}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":91}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":19}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":40}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":10}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":18}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":6}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":15}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":90}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":19}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":40}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":10}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":18}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":6}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":12}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":59}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":22}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":19}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":6}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":13}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":63}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":19}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":41}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":10}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":18}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":34}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":47}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":10}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":18}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":6}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":15}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":19}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":69}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":31}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":9}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":6}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":23}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":71}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":17}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":68}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":9}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":6}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":12}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":49}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":15}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":54}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":9}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":6}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":17}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":92}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":19}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":40}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":10}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":18}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":6}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":12}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":52}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":15}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":73}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":9}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":6}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":13}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":64}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":15}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":71}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":9}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":6}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":1}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":0}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":42}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1,\"87\":1,\"88\":1,\"89\":1,\"90\":1,\"91\":1,\"92\":1,\"93\":1,\"94\":1,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":1,\"101\":1,\"102\":1,\"103\":1,\"104\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{\"0\":{\"name\":\"options\",\"decl\":{\"start\":{\"line\":75,\"column\":21},\"end\":{\"line\":75,\"column\":68}},\"loc\":{\"start\":{\"line\":75,\"column\":21},\"end\":{\"line\":75,\"column\":68}},\"line\":75}},\"f\":{\"0\":0}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\schedules.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":37}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":31}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":48}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":41}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":35}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":11}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":45}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":19}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":6}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":12}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":45}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":20}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":6}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":11}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":19}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":22}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":6}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":11}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":23}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":14}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":6}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":12}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":21}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":23}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":62}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":6}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":23}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":21}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":23}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":61}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":5}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":4}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":20}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":3}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":0}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":59}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":27}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\users.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":35}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":29}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":63}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":23}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":16}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":21}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":22}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":6}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":15}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":21}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":22}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":6}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":12}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":21}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":23}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":20}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":6}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":12}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":20}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":6}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":9}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":5}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":21}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":24}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":41}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":6}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":12}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":20}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":6}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":11}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":21}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":41}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":6}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":16}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":20}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":6}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":15}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":21}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":22}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":25}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":5}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":4}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":20}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":3}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":35}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":27}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":41}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":0}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":23}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\models\\\\visitingPlaces.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":37}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":31}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":32}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":11}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":21}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":24}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":23}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":24}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":6}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":18}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":23}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":22}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":5}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":3}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":0}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":32}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":11}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":21}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":23}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":20}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":6}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":18}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":21}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":22}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":6}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":15}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":26}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":26}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":22}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":6}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":15}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":21}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":22}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":6}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":18}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":21}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":22}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":6}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":10}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":5}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":21}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":6}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":24}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":9}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":25}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":65}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":9}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":5}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":4}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":20}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":3}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":0}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":37}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":50}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":0}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":24}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\cors.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":35}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":29}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":22}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":29}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":95}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":46}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":20}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":56}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":39}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":5}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":10}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":40}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":5}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":32}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":2}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":34}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":22}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":0}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":51}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":52}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":2,\"8\":2,\"9\":0,\"10\":0,\"11\":2,\"12\":2,\"13\":2,\"14\":2,\"15\":2,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":7,\"loc\":{\"start\":{\"line\":7,\"column\":26},\"end\":{\"line\":16,\"column\":2}},\"locations\":[{\"start\":{\"line\":7,\"column\":26},\"end\":{\"line\":16,\"column\":2}}]},\"1\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":55},\"end\":{\"line\":11,\"column\":5}},\"locations\":[{\"start\":{\"line\":9,\"column\":55},\"end\":{\"line\":11,\"column\":5}}]}},\"b\":{\"0\":[2],\"1\":[0]},\"fnMap\":{\"0\":{\"name\":\"corsOptionsDelegate\",\"decl\":{\"start\":{\"line\":7,\"column\":26},\"end\":{\"line\":16,\"column\":2}},\"loc\":{\"start\":{\"line\":7,\"column\":26},\"end\":{\"line\":16,\"column\":2}},\"line\":7}},\"f\":{\"0\":2}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\dashboardRouter.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":35}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":42}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":31}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":57}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":74}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":0}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":41}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":39}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":31}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":74}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":104}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":33}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\employeeRouter.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":35}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":42}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":53}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":31}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":57}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":58}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":72}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":0}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":40}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":0}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":38}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":85}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":3}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":31}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":3}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":85}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":25}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":74}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":107}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":113}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":52}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":29}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":61}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":6}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":125}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":31}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":74}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":125}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":85}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":3}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":47}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":3}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":85}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":0}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":36}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":74}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":114}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":53}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":29}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":87}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":6}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":128}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":126}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":32}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":0,\"24\":0,\"25\":0,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":0,\"42\":0,\"43\":0,\"44\":1,\"45\":1,\"46\":1,\"47\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\placeRouter.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":35}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":42}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":31}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":53}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":57}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":58}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":66}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":45}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":43}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":85}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":37}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":85}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":30}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":74}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":82}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":116}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":52}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":29}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":66}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":6}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":126}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":36}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":74}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":101}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":85}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":3}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":43}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":85}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":46}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":74}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":89}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":53}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":29}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":97}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":6}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":129}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":127}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":37}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":24,\"loc\":{\"start\":{\"line\":24,\"column\":31},\"end\":{\"line\":27,\"column\":6}},\"locations\":[{\"start\":{\"line\":24,\"column\":31},\"end\":{\"line\":27,\"column\":6}}]},\"1\":{\"type\":\"branch\",\"line\":42,\"loc\":{\"start\":{\"line\":42,\"column\":32},\"end\":{\"line\":45,\"column\":6}},\"locations\":[{\"start\":{\"line\":42,\"column\":32},\"end\":{\"line\":45,\"column\":6}}]}},\"b\":{\"0\":[1],\"1\":[1]},\"fnMap\":{},\"f\":{}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\scheduleRouter.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":35}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":42}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":31}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":53}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":57}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":58}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":71}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":40}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":38}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":85}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":3}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":31}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":3}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":85}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":0}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":25}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":74}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":81}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":88}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":107}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":29}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":61}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":6}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":124}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":0}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":85}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":3}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":37}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":3}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":85}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":0}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":36}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":99}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":87}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":104}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":29}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":87}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":6}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":124}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":124}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":0}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":37}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":99}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":90}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":32}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":23,\"loc\":{\"start\":{\"line\":23,\"column\":86},\"end\":{\"line\":26,\"column\":6}},\"locations\":[{\"start\":{\"line\":23,\"column\":86},\"end\":{\"line\":26,\"column\":6}}]},\"1\":{\"type\":\"branch\",\"line\":38,\"loc\":{\"start\":{\"line\":38,\"column\":83},\"end\":{\"line\":41,\"column\":6}},\"locations\":[{\"start\":{\"line\":38,\"column\":83},\"end\":{\"line\":41,\"column\":6}}]}},\"b\":{\"0\":[1],\"1\":[1]},\"fnMap\":{},\"f\":{}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\touristRouter.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":35}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":42}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":31}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":53}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":57}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":58}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":69}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":0}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":39}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":37}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":85}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":3}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":30}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":3}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":85}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":24}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":74}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":81}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":117}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":52}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":29}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":60}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":6}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":123}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":30}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":74}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":98}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":0}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":85}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":3}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":46}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":3}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":85}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":0}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":34}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":74}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":87}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":53}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":29}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":85}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":6}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":130}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":128}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":31}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":24,\"loc\":{\"start\":{\"line\":24,\"column\":31},\"end\":{\"line\":27,\"column\":6}},\"locations\":[{\"start\":{\"line\":24,\"column\":31},\"end\":{\"line\":27,\"column\":6}}]},\"1\":{\"type\":\"branch\",\"line\":42,\"loc\":{\"start\":{\"line\":42,\"column\":32},\"end\":{\"line\":45,\"column\":6}},\"locations\":[{\"start\":{\"line\":42,\"column\":32},\"end\":{\"line\":45,\"column\":6}}]}},\"b\":{\"0\":[1],\"1\":[1]},\"fnMap\":{},\"f\":{}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\routes\\\\userRouter.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":33}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":34}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":42}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":46}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":53}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":57}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":58}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":62}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":31}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":0}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":34}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":85}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":0}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":83}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":0}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":70}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":0}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":96}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":93}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":73}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":28}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\place_helper.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\place_helper.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":54}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":54}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":33}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":35}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":38}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":41}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":65}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":36}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":1}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":35}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":22}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":35}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":211}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":21}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":62}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":10}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":27}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":31}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":21}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":26}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":6}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":39}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":23}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":32}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":1}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":0}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":38}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":22}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":32}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":48}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":21}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":62}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":10}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":27}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":31}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":21}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":27}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":6}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":39}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":23}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":25}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":0}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":32}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":1}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":0}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":32}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":39}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":18}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":1}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":0}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":18}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":77}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":0,\"51\":0,\"52\":0,\"53\":1,\"54\":1,\"55\":1,\"56\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":6,\"loc\":{\"start\":{\"line\":6,\"column\":22},\"end\":{\"line\":11,\"column\":1}},\"locations\":[{\"start\":{\"line\":6,\"column\":22},\"end\":{\"line\":11,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":8,\"loc\":{\"start\":{\"line\":8,\"column\":13},\"end\":{\"line\":8,\"column\":26}},\"locations\":[{\"start\":{\"line\":8,\"column\":13},\"end\":{\"line\":8,\"column\":26}}]},\"2\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":42},\"end\":{\"line\":9,\"column\":56}},\"locations\":[{\"start\":{\"line\":9,\"column\":42},\"end\":{\"line\":9,\"column\":56}}]},\"3\":{\"type\":\"branch\",\"line\":13,\"loc\":{\"start\":{\"line\":13,\"column\":22},\"end\":{\"line\":29,\"column\":1}},\"locations\":[{\"start\":{\"line\":13,\"column\":22},\"end\":{\"line\":29,\"column\":1}}]},\"4\":{\"type\":\"branch\",\"line\":31,\"loc\":{\"start\":{\"line\":31,\"column\":25},\"end\":{\"line\":48,\"column\":1}},\"locations\":[{\"start\":{\"line\":31,\"column\":25},\"end\":{\"line\":48,\"column\":1}}]}},\"b\":{\"0\":[1],\"1\":[3],\"2\":[3],\"3\":[1],\"4\":[1]},\"fnMap\":{\"0\":{\"name\":\"addPlacesToDb\",\"decl\":{\"start\":{\"line\":6,\"column\":22},\"end\":{\"line\":11,\"column\":1}},\"loc\":{\"start\":{\"line\":6,\"column\":22},\"end\":{\"line\":11,\"column\":1}},\"line\":6},\"1\":{\"name\":\"getExistingId\",\"decl\":{\"start\":{\"line\":13,\"column\":22},\"end\":{\"line\":29,\"column\":1}},\"loc\":{\"start\":{\"line\":13,\"column\":22},\"end\":{\"line\":29,\"column\":1}},\"line\":13},\"2\":{\"name\":\"getNonExistingId\",\"decl\":{\"start\":{\"line\":31,\"column\":25},\"end\":{\"line\":48,\"column\":1}},\"loc\":{\"start\":{\"line\":31,\"column\":25},\"end\":{\"line\":48,\"column\":1}},\"line\":31},\"3\":{\"name\":\"placesInDb\",\"decl\":{\"start\":{\"line\":50,\"column\":19},\"end\":{\"line\":53,\"column\":1}},\"loc\":{\"start\":{\"line\":50,\"column\":19},\"end\":{\"line\":53,\"column\":1}},\"line\":50}},\"f\":{\"0\":1,\"1\":1,\"2\":1,\"3\":0}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\schedule_helper.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\schedule_helper.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":51}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":58}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":37}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":0}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":40}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":44}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":37}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":49}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":74}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":36}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":1}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":35}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":25}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":42}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":43}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":23}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":33}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":4}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":6}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":47}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":26}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":0}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":35}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":1}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":0}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":38}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":25}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":42}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":43}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":23}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":33}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":4}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":6}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":47}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":26}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":28}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":0}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":35}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":1}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":0}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":35}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":39}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":18}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":1}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":18}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":68}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":2,\"7\":2,\"8\":2,\"9\":2,\"10\":2,\"11\":2,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":0,\"44\":0,\"45\":0,\"46\":1,\"47\":1,\"48\":1,\"49\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":6,\"loc\":{\"start\":{\"line\":6,\"column\":25},\"end\":{\"line\":12,\"column\":1}},\"locations\":[{\"start\":{\"line\":6,\"column\":25},\"end\":{\"line\":12,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":9,\"loc\":{\"start\":{\"line\":9,\"column\":13},\"end\":{\"line\":9,\"column\":29}},\"locations\":[{\"start\":{\"line\":9,\"column\":13},\"end\":{\"line\":9,\"column\":29}}]},\"2\":{\"type\":\"branch\",\"line\":10,\"loc\":{\"start\":{\"line\":10,\"column\":45},\"end\":{\"line\":10,\"column\":65}},\"locations\":[{\"start\":{\"line\":10,\"column\":45},\"end\":{\"line\":10,\"column\":65}}]},\"3\":{\"type\":\"branch\",\"line\":14,\"loc\":{\"start\":{\"line\":14,\"column\":22},\"end\":{\"line\":26,\"column\":1}},\"locations\":[{\"start\":{\"line\":14,\"column\":22},\"end\":{\"line\":26,\"column\":1}}]},\"4\":{\"type\":\"branch\",\"line\":28,\"loc\":{\"start\":{\"line\":28,\"column\":25},\"end\":{\"line\":41,\"column\":1}},\"locations\":[{\"start\":{\"line\":28,\"column\":25},\"end\":{\"line\":41,\"column\":1}}]}},\"b\":{\"0\":[2],\"1\":[2],\"2\":[2],\"3\":[1],\"4\":[1]},\"fnMap\":{\"0\":{\"name\":\"addSchedulesToDb\",\"decl\":{\"start\":{\"line\":6,\"column\":25},\"end\":{\"line\":12,\"column\":1}},\"loc\":{\"start\":{\"line\":6,\"column\":25},\"end\":{\"line\":12,\"column\":1}},\"line\":6},\"1\":{\"name\":\"getExistingId\",\"decl\":{\"start\":{\"line\":14,\"column\":22},\"end\":{\"line\":26,\"column\":1}},\"loc\":{\"start\":{\"line\":14,\"column\":22},\"end\":{\"line\":26,\"column\":1}},\"line\":14},\"2\":{\"name\":\"getNonExistingId\",\"decl\":{\"start\":{\"line\":28,\"column\":25},\"end\":{\"line\":41,\"column\":1}},\"loc\":{\"start\":{\"line\":28,\"column\":25},\"end\":{\"line\":41,\"column\":1}},\"line\":28},\"3\":{\"name\":\"schedulesInDb\",\"decl\":{\"start\":{\"line\":43,\"column\":22},\"end\":{\"line\":46,\"column\":1}},\"loc\":{\"start\":{\"line\":43,\"column\":22},\"end\":{\"line\":46,\"column\":1}},\"line\":43}},\"f\":{\"0\":2,\"1\":1,\"2\":1,\"3\":0}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\user_helper.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\helpers\\\\user_helper.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":33}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":41}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":41}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":44}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":0}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":14}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":19}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":15}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":15}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":25}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":24}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":31}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":32}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":2}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":19}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":26}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":28}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":40}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":2}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":17}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":25}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":27}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":38}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":2}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":33}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":31}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":16}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":36}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":21}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":2}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":0}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":35}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":21}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":26}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":5}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":24}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":17}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":30}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":33}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":6}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":33}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":29}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":21}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":37}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":22}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":1}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":0}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":34}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":22}},\"49\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":50,\"column\":30}},\"50\":{\"start\":{\"line\":51,\"column\":0},\"end\":{\"line\":51,\"column\":5}},\"51\":{\"start\":{\"line\":52,\"column\":0},\"end\":{\"line\":52,\"column\":33}},\"52\":{\"start\":{\"line\":53,\"column\":0},\"end\":{\"line\":53,\"column\":27}},\"53\":{\"start\":{\"line\":54,\"column\":0},\"end\":{\"line\":54,\"column\":53}},\"54\":{\"start\":{\"line\":55,\"column\":0},\"end\":{\"line\":55,\"column\":24}},\"55\":{\"start\":{\"line\":56,\"column\":0},\"end\":{\"line\":56,\"column\":21}},\"56\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":57,\"column\":34}},\"57\":{\"start\":{\"line\":58,\"column\":0},\"end\":{\"line\":58,\"column\":2}},\"58\":{\"start\":{\"line\":59,\"column\":0},\"end\":{\"line\":59,\"column\":0}},\"59\":{\"start\":{\"line\":60,\"column\":0},\"end\":{\"line\":60,\"column\":39}},\"60\":{\"start\":{\"line\":61,\"column\":0},\"end\":{\"line\":61,\"column\":25}},\"61\":{\"start\":{\"line\":62,\"column\":0},\"end\":{\"line\":62,\"column\":30}},\"62\":{\"start\":{\"line\":63,\"column\":0},\"end\":{\"line\":63,\"column\":5}},\"63\":{\"start\":{\"line\":64,\"column\":0},\"end\":{\"line\":64,\"column\":42}},\"64\":{\"start\":{\"line\":65,\"column\":0},\"end\":{\"line\":65,\"column\":17}},\"65\":{\"start\":{\"line\":66,\"column\":0},\"end\":{\"line\":66,\"column\":34}},\"66\":{\"start\":{\"line\":67,\"column\":0},\"end\":{\"line\":67,\"column\":27}},\"67\":{\"start\":{\"line\":68,\"column\":0},\"end\":{\"line\":68,\"column\":6}},\"68\":{\"start\":{\"line\":69,\"column\":0},\"end\":{\"line\":69,\"column\":33}},\"69\":{\"start\":{\"line\":70,\"column\":0},\"end\":{\"line\":70,\"column\":29}},\"70\":{\"start\":{\"line\":71,\"column\":0},\"end\":{\"line\":71,\"column\":21}},\"71\":{\"start\":{\"line\":72,\"column\":0},\"end\":{\"line\":72,\"column\":41}},\"72\":{\"start\":{\"line\":73,\"column\":0},\"end\":{\"line\":73,\"column\":26}},\"73\":{\"start\":{\"line\":74,\"column\":0},\"end\":{\"line\":74,\"column\":1}},\"74\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":75,\"column\":0}},\"75\":{\"start\":{\"line\":76,\"column\":0},\"end\":{\"line\":76,\"column\":32}},\"76\":{\"start\":{\"line\":77,\"column\":0},\"end\":{\"line\":77,\"column\":26}},\"77\":{\"start\":{\"line\":78,\"column\":0},\"end\":{\"line\":78,\"column\":34}},\"78\":{\"start\":{\"line\":79,\"column\":0},\"end\":{\"line\":79,\"column\":5}},\"79\":{\"start\":{\"line\":80,\"column\":0},\"end\":{\"line\":80,\"column\":33}},\"80\":{\"start\":{\"line\":81,\"column\":0},\"end\":{\"line\":81,\"column\":26}},\"81\":{\"start\":{\"line\":82,\"column\":0},\"end\":{\"line\":82,\"column\":57}},\"82\":{\"start\":{\"line\":83,\"column\":0},\"end\":{\"line\":83,\"column\":22}},\"83\":{\"start\":{\"line\":84,\"column\":0},\"end\":{\"line\":84,\"column\":21}},\"84\":{\"start\":{\"line\":85,\"column\":0},\"end\":{\"line\":85,\"column\":34}},\"85\":{\"start\":{\"line\":86,\"column\":0},\"end\":{\"line\":86,\"column\":2}},\"86\":{\"start\":{\"line\":87,\"column\":0},\"end\":{\"line\":87,\"column\":0}},\"87\":{\"start\":{\"line\":88,\"column\":0},\"end\":{\"line\":88,\"column\":37}},\"88\":{\"start\":{\"line\":89,\"column\":0},\"end\":{\"line\":89,\"column\":20}},\"89\":{\"start\":{\"line\":90,\"column\":0},\"end\":{\"line\":90,\"column\":25}},\"90\":{\"start\":{\"line\":91,\"column\":0},\"end\":{\"line\":91,\"column\":5}},\"91\":{\"start\":{\"line\":92,\"column\":0},\"end\":{\"line\":92,\"column\":40}},\"92\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":93,\"column\":17}},\"93\":{\"start\":{\"line\":94,\"column\":0},\"end\":{\"line\":94,\"column\":32}},\"94\":{\"start\":{\"line\":95,\"column\":0},\"end\":{\"line\":95,\"column\":27}},\"95\":{\"start\":{\"line\":96,\"column\":0},\"end\":{\"line\":96,\"column\":6}},\"96\":{\"start\":{\"line\":97,\"column\":0},\"end\":{\"line\":97,\"column\":33}},\"97\":{\"start\":{\"line\":98,\"column\":0},\"end\":{\"line\":98,\"column\":29}},\"98\":{\"start\":{\"line\":99,\"column\":0},\"end\":{\"line\":99,\"column\":21}},\"99\":{\"start\":{\"line\":100,\"column\":0},\"end\":{\"line\":100,\"column\":36}},\"100\":{\"start\":{\"line\":101,\"column\":0},\"end\":{\"line\":101,\"column\":21}},\"101\":{\"start\":{\"line\":102,\"column\":0},\"end\":{\"line\":102,\"column\":1}},\"102\":{\"start\":{\"line\":103,\"column\":0},\"end\":{\"line\":103,\"column\":0}},\"103\":{\"start\":{\"line\":104,\"column\":0},\"end\":{\"line\":104,\"column\":35}},\"104\":{\"start\":{\"line\":105,\"column\":0},\"end\":{\"line\":105,\"column\":24}},\"105\":{\"start\":{\"line\":106,\"column\":0},\"end\":{\"line\":106,\"column\":29}},\"106\":{\"start\":{\"line\":107,\"column\":0},\"end\":{\"line\":107,\"column\":31}},\"107\":{\"start\":{\"line\":108,\"column\":0},\"end\":{\"line\":108,\"column\":43}},\"108\":{\"start\":{\"line\":109,\"column\":0},\"end\":{\"line\":109,\"column\":30}},\"109\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":110,\"column\":28}},\"110\":{\"start\":{\"line\":111,\"column\":0},\"end\":{\"line\":111,\"column\":0}},\"111\":{\"start\":{\"line\":112,\"column\":0},\"end\":{\"line\":112,\"column\":5}},\"112\":{\"start\":{\"line\":113,\"column\":0},\"end\":{\"line\":113,\"column\":42}},\"113\":{\"start\":{\"line\":114,\"column\":0},\"end\":{\"line\":114,\"column\":25}},\"114\":{\"start\":{\"line\":115,\"column\":0},\"end\":{\"line\":115,\"column\":0}},\"115\":{\"start\":{\"line\":116,\"column\":0},\"end\":{\"line\":116,\"column\":34}},\"116\":{\"start\":{\"line\":117,\"column\":0},\"end\":{\"line\":117,\"column\":0}},\"117\":{\"start\":{\"line\":118,\"column\":0},\"end\":{\"line\":118,\"column\":4}},\"118\":{\"start\":{\"line\":119,\"column\":0},\"end\":{\"line\":119,\"column\":1}},\"119\":{\"start\":{\"line\":120,\"column\":0},\"end\":{\"line\":120,\"column\":0}},\"120\":{\"start\":{\"line\":121,\"column\":0},\"end\":{\"line\":121,\"column\":38}},\"121\":{\"start\":{\"line\":122,\"column\":0},\"end\":{\"line\":122,\"column\":24}},\"122\":{\"start\":{\"line\":123,\"column\":0},\"end\":{\"line\":123,\"column\":29}},\"123\":{\"start\":{\"line\":124,\"column\":0},\"end\":{\"line\":124,\"column\":31}},\"124\":{\"start\":{\"line\":125,\"column\":0},\"end\":{\"line\":125,\"column\":42}},\"125\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":126,\"column\":5}},\"126\":{\"start\":{\"line\":127,\"column\":0},\"end\":{\"line\":127,\"column\":42}},\"127\":{\"start\":{\"line\":128,\"column\":0},\"end\":{\"line\":128,\"column\":25}},\"128\":{\"start\":{\"line\":129,\"column\":0},\"end\":{\"line\":129,\"column\":27}},\"129\":{\"start\":{\"line\":130,\"column\":0},\"end\":{\"line\":130,\"column\":0}},\"130\":{\"start\":{\"line\":131,\"column\":0},\"end\":{\"line\":131,\"column\":34}},\"131\":{\"start\":{\"line\":132,\"column\":0},\"end\":{\"line\":132,\"column\":1}},\"132\":{\"start\":{\"line\":133,\"column\":0},\"end\":{\"line\":133,\"column\":0}},\"133\":{\"start\":{\"line\":134,\"column\":0},\"end\":{\"line\":134,\"column\":32}},\"134\":{\"start\":{\"line\":135,\"column\":0},\"end\":{\"line\":135,\"column\":36}},\"135\":{\"start\":{\"line\":136,\"column\":0},\"end\":{\"line\":136,\"column\":19}},\"136\":{\"start\":{\"line\":137,\"column\":0},\"end\":{\"line\":137,\"column\":1}},\"137\":{\"start\":{\"line\":138,\"column\":0},\"end\":{\"line\":138,\"column\":0}},\"138\":{\"start\":{\"line\":139,\"column\":0},\"end\":{\"line\":139,\"column\":18}},\"139\":{\"start\":{\"line\":140,\"column\":0},\"end\":{\"line\":140,\"column\":128}},\"140\":{\"start\":{\"line\":141,\"column\":0},\"end\":{\"line\":141,\"column\":1}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":0,\"34\":0,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":2,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":1,\"85\":1,\"86\":1,\"87\":1,\"88\":1,\"89\":0,\"90\":0,\"91\":1,\"92\":1,\"93\":1,\"94\":1,\"95\":1,\"96\":1,\"97\":1,\"98\":1,\"99\":1,\"100\":1,\"101\":1,\"102\":1,\"103\":1,\"104\":1,\"105\":1,\"106\":1,\"107\":1,\"108\":1,\"109\":1,\"110\":1,\"111\":1,\"112\":1,\"113\":1,\"114\":1,\"115\":1,\"116\":1,\"117\":1,\"118\":1,\"119\":1,\"120\":1,\"121\":1,\"122\":1,\"123\":1,\"124\":1,\"125\":1,\"126\":1,\"127\":1,\"128\":1,\"129\":1,\"130\":1,\"131\":1,\"132\":1,\"133\":1,\"134\":0,\"135\":0,\"136\":0,\"137\":1,\"138\":1,\"139\":1,\"140\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":25,\"loc\":{\"start\":{\"line\":25,\"column\":20},\"end\":{\"line\":30,\"column\":2}},\"locations\":[{\"start\":{\"line\":25,\"column\":20},\"end\":{\"line\":30,\"column\":2}}]},\"1\":{\"type\":\"branch\",\"line\":32,\"loc\":{\"start\":{\"line\":32,\"column\":22},\"end\":{\"line\":46,\"column\":1}},\"locations\":[{\"start\":{\"line\":32,\"column\":22},\"end\":{\"line\":46,\"column\":1}}]},\"2\":{\"type\":\"branch\",\"line\":33,\"loc\":{\"start\":{\"line\":33,\"column\":20},\"end\":{\"line\":35,\"column\":5}},\"locations\":[{\"start\":{\"line\":33,\"column\":20},\"end\":{\"line\":35,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":48,\"loc\":{\"start\":{\"line\":48,\"column\":21},\"end\":{\"line\":58,\"column\":2}},\"locations\":[{\"start\":{\"line\":48,\"column\":21},\"end\":{\"line\":58,\"column\":2}}]},\"4\":{\"type\":\"branch\",\"line\":60,\"loc\":{\"start\":{\"line\":60,\"column\":26},\"end\":{\"line\":74,\"column\":1}},\"locations\":[{\"start\":{\"line\":60,\"column\":26},\"end\":{\"line\":74,\"column\":1}}]},\"5\":{\"type\":\"branch\",\"line\":61,\"loc\":{\"start\":{\"line\":61,\"column\":24},\"end\":{\"line\":74,\"column\":1}},\"locations\":[{\"start\":{\"line\":61,\"column\":24},\"end\":{\"line\":74,\"column\":1}}]},\"6\":{\"type\":\"branch\",\"line\":76,\"loc\":{\"start\":{\"line\":76,\"column\":19},\"end\":{\"line\":86,\"column\":2}},\"locations\":[{\"start\":{\"line\":76,\"column\":19},\"end\":{\"line\":86,\"column\":2}}]},\"7\":{\"type\":\"branch\",\"line\":88,\"loc\":{\"start\":{\"line\":88,\"column\":24},\"end\":{\"line\":102,\"column\":1}},\"locations\":[{\"start\":{\"line\":88,\"column\":24},\"end\":{\"line\":102,\"column\":1}}]},\"8\":{\"type\":\"branch\",\"line\":89,\"loc\":{\"start\":{\"line\":89,\"column\":19},\"end\":{\"line\":91,\"column\":5}},\"locations\":[{\"start\":{\"line\":89,\"column\":19},\"end\":{\"line\":91,\"column\":5}}]},\"9\":{\"type\":\"branch\",\"line\":104,\"loc\":{\"start\":{\"line\":104,\"column\":22},\"end\":{\"line\":119,\"column\":1}},\"locations\":[{\"start\":{\"line\":104,\"column\":22},\"end\":{\"line\":119,\"column\":1}}]},\"10\":{\"type\":\"branch\",\"line\":121,\"loc\":{\"start\":{\"line\":121,\"column\":25},\"end\":{\"line\":132,\"column\":1}},\"locations\":[{\"start\":{\"line\":121,\"column\":25},\"end\":{\"line\":132,\"column\":1}}]}},\"b\":{\"0\":[1],\"1\":[1],\"2\":[0],\"3\":[1],\"4\":[2],\"5\":[1],\"6\":[1],\"7\":[1],\"8\":[0],\"9\":[1],\"10\":[1]},\"fnMap\":{\"0\":{\"name\":\"signupAdmin\",\"decl\":{\"start\":{\"line\":25,\"column\":20},\"end\":{\"line\":30,\"column\":2}},\"loc\":{\"start\":{\"line\":25,\"column\":20},\"end\":{\"line\":30,\"column\":2}},\"line\":25},\"1\":{\"name\":\"getAdminToken\",\"decl\":{\"start\":{\"line\":32,\"column\":22},\"end\":{\"line\":46,\"column\":1}},\"loc\":{\"start\":{\"line\":32,\"column\":22},\"end\":{\"line\":46,\"column\":1}},\"line\":32},\"2\":{\"name\":\"addAssistant\",\"decl\":{\"start\":{\"line\":48,\"column\":21},\"end\":{\"line\":58,\"column\":2}},\"loc\":{\"start\":{\"line\":48,\"column\":21},\"end\":{\"line\":58,\"column\":2}},\"line\":48},\"3\":{\"name\":\"getAssistantToken\",\"decl\":{\"start\":{\"line\":60,\"column\":26},\"end\":{\"line\":74,\"column\":1}},\"loc\":{\"start\":{\"line\":60,\"column\":26},\"end\":{\"line\":74,\"column\":1}},\"line\":60},\"4\":{\"name\":\"addTourist\",\"decl\":{\"start\":{\"line\":76,\"column\":19},\"end\":{\"line\":86,\"column\":2}},\"loc\":{\"start\":{\"line\":76,\"column\":19},\"end\":{\"line\":86,\"column\":2}},\"line\":76},\"5\":{\"name\":\"getTouristToken\",\"decl\":{\"start\":{\"line\":88,\"column\":24},\"end\":{\"line\":102,\"column\":1}},\"loc\":{\"start\":{\"line\":88,\"column\":24},\"end\":{\"line\":102,\"column\":1}},\"line\":88},\"6\":{\"name\":\"getExistingId\",\"decl\":{\"start\":{\"line\":104,\"column\":22},\"end\":{\"line\":119,\"column\":1}},\"loc\":{\"start\":{\"line\":104,\"column\":22},\"end\":{\"line\":119,\"column\":1}},\"line\":104},\"7\":{\"name\":\"getNonExistingId\",\"decl\":{\"start\":{\"line\":121,\"column\":25},\"end\":{\"line\":132,\"column\":1}},\"loc\":{\"start\":{\"line\":121,\"column\":25},\"end\":{\"line\":132,\"column\":1}},\"line\":121},\"8\":{\"name\":\"decodeToken\",\"decl\":{\"start\":{\"line\":134,\"column\":21},\"end\":{\"line\":137,\"column\":1}},\"loc\":{\"start\":{\"line\":134,\"column\":21},\"end\":{\"line\":137,\"column\":1}},\"line\":134}},\"f\":{\"0\":1,\"1\":1,\"2\":1,\"3\":2,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":0}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\mockData\\\\places.data.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\mockData\\\\places.data.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":16}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":5}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":26}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":211}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":21}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":66}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":10}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":27}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":31}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":21}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":41}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":6}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":5}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":28}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":211}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":21}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":65}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":10}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":27}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":31}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":21}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":34}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":6}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":5}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":31}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":211}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":21}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":66}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":10}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":27}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":31}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":21}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":27}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":6}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":2}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":0}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":24}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1},\"branchMap\":{},\"b\":{},\"fnMap\":{},\"f\":{}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\mockData\\\\schedule.data.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\mockData\\\\schedule.data.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":37}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":58}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":0}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":36}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":13}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":44}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":43}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":27}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":33}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":4}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":7}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":1}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":0}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":0}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":26}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":2,\"5\":2,\"6\":2,\"7\":2,\"8\":2,\"9\":2,\"10\":2,\"11\":2,\"12\":1,\"13\":1,\"14\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":4,\"loc\":{\"start\":{\"line\":4,\"column\":17},\"end\":{\"line\":12,\"column\":1}},\"locations\":[{\"start\":{\"line\":4,\"column\":17},\"end\":{\"line\":12,\"column\":1}}]}},\"b\":{\"0\":[2]},\"fnMap\":{\"0\":{\"name\":\"schedule\",\"decl\":{\"start\":{\"line\":4,\"column\":17},\"end\":{\"line\":12,\"column\":1}},\"loc\":{\"start\":{\"line\":4,\"column\":17},\"end\":{\"line\":12,\"column\":1}},\"line\":4}},\"f\":{\"0\":2}},\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\":{\"path\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\utils\\\\utils.js\",\"all\":false,\"statementMap\":{\"0\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":1,\"column\":33}},\"1\":{\"start\":{\"line\":2,\"column\":0},\"end\":{\"line\":2,\"column\":39}},\"2\":{\"start\":{\"line\":3,\"column\":0},\"end\":{\"line\":3,\"column\":27}},\"3\":{\"start\":{\"line\":4,\"column\":0},\"end\":{\"line\":4,\"column\":36}},\"4\":{\"start\":{\"line\":5,\"column\":0},\"end\":{\"line\":5,\"column\":43}},\"5\":{\"start\":{\"line\":6,\"column\":0},\"end\":{\"line\":6,\"column\":27}},\"6\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":7,\"column\":6}},\"7\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":8,\"column\":40}},\"8\":{\"start\":{\"line\":9,\"column\":0},\"end\":{\"line\":9,\"column\":80}},\"9\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":10,\"column\":5}},\"10\":{\"start\":{\"line\":11,\"column\":0},\"end\":{\"line\":11,\"column\":3}},\"11\":{\"start\":{\"line\":12,\"column\":0},\"end\":{\"line\":12,\"column\":0}},\"12\":{\"start\":{\"line\":13,\"column\":0},\"end\":{\"line\":13,\"column\":39}},\"13\":{\"start\":{\"line\":14,\"column\":0},\"end\":{\"line\":14,\"column\":70}},\"14\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":15,\"column\":51}},\"15\":{\"start\":{\"line\":16,\"column\":0},\"end\":{\"line\":16,\"column\":23}},\"16\":{\"start\":{\"line\":17,\"column\":0},\"end\":{\"line\":17,\"column\":12}},\"17\":{\"start\":{\"line\":18,\"column\":0},\"end\":{\"line\":18,\"column\":24}},\"18\":{\"start\":{\"line\":19,\"column\":0},\"end\":{\"line\":19,\"column\":5}},\"19\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":20,\"column\":1}},\"20\":{\"start\":{\"line\":21,\"column\":0},\"end\":{\"line\":21,\"column\":0}},\"21\":{\"start\":{\"line\":22,\"column\":0},\"end\":{\"line\":22,\"column\":45}},\"22\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":23,\"column\":0}},\"23\":{\"start\":{\"line\":24,\"column\":0},\"end\":{\"line\":24,\"column\":24}},\"24\":{\"start\":{\"line\":25,\"column\":0},\"end\":{\"line\":25,\"column\":0}},\"25\":{\"start\":{\"line\":26,\"column\":0},\"end\":{\"line\":26,\"column\":37}},\"26\":{\"start\":{\"line\":27,\"column\":0},\"end\":{\"line\":27,\"column\":38}},\"27\":{\"start\":{\"line\":28,\"column\":0},\"end\":{\"line\":28,\"column\":58}},\"28\":{\"start\":{\"line\":29,\"column\":0},\"end\":{\"line\":29,\"column\":31}},\"29\":{\"start\":{\"line\":30,\"column\":0},\"end\":{\"line\":30,\"column\":55}},\"30\":{\"start\":{\"line\":31,\"column\":0},\"end\":{\"line\":31,\"column\":22}},\"31\":{\"start\":{\"line\":32,\"column\":0},\"end\":{\"line\":32,\"column\":23}},\"32\":{\"start\":{\"line\":33,\"column\":0},\"end\":{\"line\":33,\"column\":22}},\"33\":{\"start\":{\"line\":34,\"column\":0},\"end\":{\"line\":34,\"column\":38}},\"34\":{\"start\":{\"line\":35,\"column\":0},\"end\":{\"line\":35,\"column\":75}},\"35\":{\"start\":{\"line\":36,\"column\":0},\"end\":{\"line\":36,\"column\":76}},\"36\":{\"start\":{\"line\":37,\"column\":0},\"end\":{\"line\":37,\"column\":80}},\"37\":{\"start\":{\"line\":38,\"column\":0},\"end\":{\"line\":38,\"column\":38}},\"38\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":39,\"column\":74}},\"39\":{\"start\":{\"line\":40,\"column\":0},\"end\":{\"line\":40,\"column\":26}},\"40\":{\"start\":{\"line\":41,\"column\":0},\"end\":{\"line\":41,\"column\":45}},\"41\":{\"start\":{\"line\":42,\"column\":0},\"end\":{\"line\":42,\"column\":49}},\"42\":{\"start\":{\"line\":43,\"column\":0},\"end\":{\"line\":43,\"column\":29}},\"43\":{\"start\":{\"line\":44,\"column\":0},\"end\":{\"line\":44,\"column\":5}},\"44\":{\"start\":{\"line\":45,\"column\":0},\"end\":{\"line\":45,\"column\":92}},\"45\":{\"start\":{\"line\":46,\"column\":0},\"end\":{\"line\":46,\"column\":38}},\"46\":{\"start\":{\"line\":47,\"column\":0},\"end\":{\"line\":47,\"column\":1}},\"47\":{\"start\":{\"line\":48,\"column\":0},\"end\":{\"line\":48,\"column\":0}},\"48\":{\"start\":{\"line\":49,\"column\":0},\"end\":{\"line\":49,\"column\":48}}},\"s\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":0,\"6\":0,\"7\":1,\"8\":0,\"9\":0,\"10\":1,\"11\":1,\"12\":1,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":6,\"27\":6,\"28\":6,\"29\":6,\"30\":6,\"31\":6,\"32\":6,\"33\":6,\"34\":24,\"35\":24,\"36\":24,\"37\":24,\"38\":24,\"39\":24,\"40\":24,\"41\":24,\"42\":24,\"43\":24,\"44\":6,\"45\":6,\"46\":6,\"47\":1,\"48\":1},\"branchMap\":{\"0\":{\"type\":\"branch\",\"line\":26,\"loc\":{\"start\":{\"line\":26,\"column\":28},\"end\":{\"line\":47,\"column\":1}},\"locations\":[{\"start\":{\"line\":26,\"column\":28},\"end\":{\"line\":47,\"column\":1}}]},\"1\":{\"type\":\"branch\",\"line\":27,\"loc\":{\"start\":{\"line\":27,\"column\":17},\"end\":{\"line\":27,\"column\":38}},\"locations\":[{\"start\":{\"line\":27,\"column\":17},\"end\":{\"line\":27,\"column\":38}}]},\"2\":{\"type\":\"branch\",\"line\":34,\"loc\":{\"start\":{\"line\":34,\"column\":37},\"end\":{\"line\":44,\"column\":5}},\"locations\":[{\"start\":{\"line\":34,\"column\":37},\"end\":{\"line\":44,\"column\":5}}]},\"3\":{\"type\":\"branch\",\"line\":39,\"loc\":{\"start\":{\"line\":39,\"column\":15},\"end\":{\"line\":39,\"column\":49}},\"locations\":[{\"start\":{\"line\":39,\"column\":15},\"end\":{\"line\":39,\"column\":49}}]},\"4\":{\"type\":\"branch\",\"line\":39,\"loc\":{\"start\":{\"line\":39,\"column\":15},\"end\":{\"line\":39,\"column\":74}},\"locations\":[{\"start\":{\"line\":39,\"column\":15},\"end\":{\"line\":39,\"column\":74}}]},\"5\":{\"type\":\"branch\",\"line\":45,\"loc\":{\"start\":{\"line\":45,\"column\":39},\"end\":{\"line\":45,\"column\":83}},\"locations\":[{\"start\":{\"line\":45,\"column\":39},\"end\":{\"line\":45,\"column\":83}}]}},\"b\":{\"0\":[6],\"1\":[0],\"2\":[24],\"3\":[12],\"4\":[12],\"5\":[173]},\"fnMap\":{\"0\":{\"name\":\"destination\",\"decl\":{\"start\":{\"line\":5,\"column\":17},\"end\":{\"line\":7,\"column\":6}},\"loc\":{\"start\":{\"line\":5,\"column\":17},\"end\":{\"line\":7,\"column\":6}},\"line\":5},\"1\":{\"name\":\"filename\",\"decl\":{\"start\":{\"line\":8,\"column\":14},\"end\":{\"line\":10,\"column\":5}},\"loc\":{\"start\":{\"line\":8,\"column\":14},\"end\":{\"line\":10,\"column\":5}},\"line\":8},\"2\":{\"name\":\"fileFilter\",\"decl\":{\"start\":{\"line\":13,\"column\":19},\"end\":{\"line\":20,\"column\":1}},\"loc\":{\"start\":{\"line\":13,\"column\":19},\"end\":{\"line\":20,\"column\":1}},\"line\":13},\"3\":{\"name\":\"password_generator\",\"decl\":{\"start\":{\"line\":26,\"column\":28},\"end\":{\"line\":47,\"column\":1}},\"loc\":{\"start\":{\"line\":26,\"column\":28},\"end\":{\"line\":47,\"column\":1}},\"line\":26}},\"f\":{\"0\":0,\"1\":0,\"2\":0,\"3\":6}}},\"config\":{\"bail\":0,\"changedFilesWithAncestor\":false,\"collectCoverage\":true,\"collectCoverageFrom\":[],\"coverageDirectory\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\tests\\\\coverage\",\"coverageProvider\":\"v8\",\"coverageReporters\":[\"text-summary\",\"html\"],\"detectLeaks\":false,\"detectOpenHandles\":true,\"errorOnDeprecated\":false,\"expand\":false,\"findRelatedTests\":false,\"forceExit\":true,\"json\":false,\"lastCommit\":false,\"listTests\":false,\"logHeapUsage\":false,\"maxConcurrency\":5,\"maxWorkers\":1,\"noStackTrace\":false,\"nonFlagArgs\":[],\"notify\":false,\"notifyMode\":\"failure-change\",\"onlyChanged\":false,\"onlyFailures\":false,\"passWithNoTests\":false,\"projects\":[],\"reporters\":[[\"default\",{}],[\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\node_modules\\\\jest-html-reporters\\\\index.js\",{\"pageTitle\":\"Test Report\",\"filename\":\"tests/test-report.html\",\"expand\":true}]],\"rootDir\":\"D:\\\\ShiftedFromC\\\\hlmsServer\",\"runTestsByPath\":false,\"skipFilter\":false,\"testFailureExitCode\":1,\"testPathPattern\":\"\",\"testSequencer\":\"D:\\\\ShiftedFromC\\\\hlmsServer\\\\node_modules\\\\@jest\\\\test-sequencer\\\\build\\\\index.js\",\"updateSnapshot\":\"new\",\"useStderr\":false,\"verbose\":true,\"watch\":false,\"watchAll\":false,\"watchman\":true},\"endTime\":1614411970639,\"_reporterOptions\":{\"publicPath\":\"D:\\\\ShiftedFromC\\\\hlmsServer\",\"filename\":\"tests/test-report.html\",\"expand\":true,\"pageTitle\":\"Test Report\",\"hideIcon\":false,\"testCommand\":\"npx jest\",\"multipleReportsUnitePath\":\"\"},\"attachInfos\":{}}"